diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2014-12-20 08:05:45 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2014-12-20 08:05:45 -0800 |
commit | bd040da1dbb7e6640440f306ddf993af98441851 (patch) | |
tree | cef69a986dea3567a54839d51aaf05ca3be409b1 | |
parent | 13a1997e6688d79ee01f1b082f7a220901c8cf34 (diff) | |
download | fsf-binutils-gdb-bd040da1dbb7e6640440f306ddf993af98441851.zip fsf-binutils-gdb-bd040da1dbb7e6640440f306ddf993af98441851.tar.gz fsf-binutils-gdb-bd040da1dbb7e6640440f306ddf993af98441851.tar.bz2 |
Change SometimesInlineFunction to "return i * i * 3;"
The debug_msg test has 2 implementations of SometimesInlineFunction:
int SometimesInlineFunction(int i) { return i; }
int SometimesInlineFunction(int i) { return i * i; }
and One Definition Rule (ODR) violation detection expects they will be
compiled into functions of different sizes. Hower, on x86, GCC 4.7 and
newer compile them into functions of the same size and ODR violation
detection test fails. This patch changes
int SometimesInlineFunction(int i) { return i; }
to
int SometimesInlineFunction(int i) { return i * i * 3; }
so that it will be compiled into a function of larger size.
PR gold/14608
* testsuite/debug_msg.cc (SometimesInlineFunction): Changed
to "return i * i * 3;".
-rw-r--r-- | gold/ChangeLog | 6 | ||||
-rw-r--r-- | gold/testsuite/debug_msg.cc | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 9edf043..f67df17 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2014-12-20 H.J. Lu <hongjiu.lu@intel.com> + + PR gold/14608 + * testsuite/debug_msg.cc (SometimesInlineFunction): Changed + to "return i * i * 3;". + 2014-12-16 Cary Coutant <ccoutant@google.com> * mapfile.cc (Mapfile::print_input_section): Print uncompressed sizes. diff --git a/gold/testsuite/debug_msg.cc b/gold/testsuite/debug_msg.cc index e5beb5f..a48c141 100644 --- a/gold/testsuite/debug_msg.cc +++ b/gold/testsuite/debug_msg.cc @@ -66,7 +66,7 @@ OdrBase* CreateOdrDerived2(); // in odr_violation2.cc extern "C" int OverriddenCFunction(int i); // in odr_violation*.cc inline int SometimesInlineFunction(int i) { // strong in odr_violation2.cc. - return i; + return i * i * 3; } |