]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Change SometimesInlineFunction to "return i * i * 3;"
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 20 Dec 2014 16:05:45 +0000 (08:05 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 20 Dec 2014 16:05:45 +0000 (08:05 -0800)
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;".

gold/ChangeLog
gold/testsuite/debug_msg.cc

index 9edf043e75254811cd5307be439d8f4b76e1f378..f67df17b5b47db45ed98907e0f7ce69ba29aec38 100644 (file)
@@ -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.
index e5beb5f91741b80fbe4187c0dcfe1c0efc5587d7..a48c1417d2161b3be92591a62b342068ae01c588 100644 (file)
@@ -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;
 }