Hi,
On some simulators (Octeon simple-exec) argc can be greater than 2.
This causes initlist-lifetime1.C and initlist-lifetime2.C to fail.
To fix this, I use a volatile variable.
Committed as obvious after testing on x86_64.
Thanks,
Andrew Pinski
* g++.dg/cpp0x/initlist-lifetime1.C: Fix testcase where
argc is always greater than 1 (octeon simulator).
* g++.dg/cpp0x/initlist-lifetime2.C: Likewise.
Index: testsuite/g++.dg/cpp0x/initlist-lifetime1.C
===================================================================
--- testsuite/g++.dg/cpp0x/initlist-lifetime1.C (revision 217978)
+++ testsuite/g++.dg/cpp0x/initlist-lifetime1.C (working copy)
@@ -23,9 +23,11 @@ struct B {
const AL& alr;
};
+volatile bool always_false = false;
+
int main(int argc, const char** argv)
{
- do_throw = (argc > 1); // always false, but optimizer can't tell
+ do_throw = always_false; // always false, but optimizer can't tell
AL ar[] = {{1,2},{3,4}};
B b = {{5,6},{7,8}};
AL3 al3 = {{{1},{2},{3}}};
Index: testsuite/g++.dg/cpp0x/initlist-lifetime2.C
===================================================================
--- testsuite/g++.dg/cpp0x/initlist-lifetime2.C (revision 217978)
+++ testsuite/g++.dg/cpp0x/initlist-lifetime2.C (working copy)
@@ -53,9 +53,11 @@ struct D {
D() { ok = true; }
};
+volatile bool always_false = false;
+
int main(int argc, const char** argv)
{
- do_throw = (argc > 1); // always false, but optimizer can't tell
+ do_throw = always_false; // always false, but optimizer can't tell
ok = false;
C c;
ok = false;