1 /* { dg-require-effective-target freorder } */
2 /* { dg-options "-O2 -freorder-blocks-and-partition" } */
4 struct A { A () __attribute__((noinline)); ~A () __attribute__((noinline)); };
5 A::A () { asm volatile ("" : : : "memory"); }
6 A::~A () { asm volatile ("" : : : "memory"); }
8 int bar () __attribute__((noinline));
9 void foo () __attribute__((noinline));
15 void *p = __builtin_alloca (i);
16 asm volatile ("" : : "r" (i), "r" (p) : "memory");
27 try { throw 6; } catch (int) {}
28 if (__builtin_expect (i < 4500, 0)) {
30 try { bar (8); } catch (long) {}
32 if (__builtin_expect (i < 0, 0)) {
33 try { bar (12); } catch (...) {}
37 try { bar (bar (7)); } catch (int) {}
40 try { bar (bar (bar (9))); } catch (...) {}
51 for (i = 0; i < 10000; i++)