aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2014-12-20 08:05:45 -0800
committerH.J. Lu <hjl.tools@gmail.com>2014-12-20 08:05:45 -0800
commitbd040da1dbb7e6640440f306ddf993af98441851 (patch)
treecef69a986dea3567a54839d51aaf05ca3be409b1
parent13a1997e6688d79ee01f1b082f7a220901c8cf34 (diff)
downloadfsf-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/ChangeLog6
-rw-r--r--gold/testsuite/debug_msg.cc2
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;
}