summaryrefslogtreecommitdiff
path: root/ABOUT-NLS
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2018-01-13 18:01:54 -0800
committerH.J. Lu <hjl.tools@gmail.com>2018-01-14 13:34:58 -0800
commita3144b575e1575ce48d56f44065b970d91fdcd19 (patch)
treefab7dd0f2dfd70bbbda75de1cc329bc05771cbde /ABOUT-NLS
parent3b73022d2a23780df5925e97b658e565299dedd9 (diff)
downloadgcc-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 'ABOUT-NLS')
0 files changed, 0 insertions, 0 deletions