diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2018-01-13 18:01:54 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2018-01-14 13:34:58 -0800 |
commit | a3144b575e1575ce48d56f44065b970d91fdcd19 (patch) | |
tree | fab7dd0f2dfd70bbbda75de1cc329bc05771cbde /include/splay-tree.h | |
parent | 3b73022d2a23780df5925e97b658e565299dedd9 (diff) | |
download | gcc-hjl/indirect/gcc-7-branch/master.tar.gz |
x86: Disallow -mindirect-branch=/-mfunction-return= with -mcmodel=largehjl/indirect/gcc-7-branch/master
Since the thunk function may not be reachable in large code model,
-mcmodel=large is incompatible with -mindirect-branch=thunk,
-mindirect-branch=thunk-extern, -mfunction-return=thunk and
-mfunction-return=thunk-extern. Issue an error when they are used with
-mcmodel=large.
gcc/
Backport from mainline
* config/i386/i386.c (ix86_set_indirect_branch_type): Disallow
-mcmodel=large with -mindirect-branch=thunk,
-mindirect-branch=thunk-extern, -mfunction-return=thunk and
-mfunction-return=thunk-extern.
* doc/invoke.texi: Document -mcmodel=large is incompatible with
-mindirect-branch=thunk, -mindirect-branch=thunk-extern,
-mfunction-return=thunk and -mfunction-return=thunk-extern.
gcc/testsuite/
Backport from mainline
* gcc.target/i386/indirect-thunk-10.c: New test.
* gcc.target/i386/indirect-thunk-8.c: Likewise.
* gcc.target/i386/indirect-thunk-9.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-10.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-11.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-9.c: Likewise.
* gcc.target/i386/ret-thunk-17.c: Likewise.
* gcc.target/i386/ret-thunk-18.c: Likewise.
* gcc.target/i386/ret-thunk-19.c: Likewise.
* gcc.target/i386/ret-thunk-20.c: Likewise.
* gcc.target/i386/ret-thunk-21.c: Likewise.
Diffstat (limited to 'include/splay-tree.h')
0 files changed, 0 insertions, 0 deletions