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;