URL
                    https://opencores.org/ocsvn/openrisc/openrisc/trunk
                
            Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [opt/] [pr22167.C] - Rev 693
Compare with Previous | Blame | View Log
// Derived from PR22167, which failed on some RISC targets. The call to// foo() has two successors, one normal and one exceptional, and both// successors use &a[0] and x. Expressions involving &a[0] can be hoisted// before the call but those involving x cannot.// { dg-options "-Os" }// { dg-do run }int a[4];struct S {S() : x (0) {}~S() { a[0] = x; }int x;};voidfoo (int *x){if (*x == 1)throw 1;*x = 1;}intmain(){S s;foo (&s.x);if (a[0] == s.x)a[0]++;return a[0];}
