/* Verify that bb-reorder re-inserts nested scopes properly. */ | |
/* { dg-do compile } */ | |
/* { dg-options "-dA" } */ | |
/* { dg-final { scan-assembler "xyzzy" } } */ | |
extern void abort (void); | |
struct A { char *a, *b, *c, *d; }; | |
static int | |
bar2 (struct A *x) | |
{ | |
int a = x->c - x->b; | |
x->c += 26; | |
return a; | |
} | |
void fnptr (int *); | |
void | |
foo (void) | |
{ | |
struct A e; | |
if (bar2 (&e) < 0) | |
abort (); | |
{ | |
int xyzzy; | |
fnptr (&xyzzy); | |
} | |
{ | |
struct A *f; | |
f = &e; | |
if (f->c - f->a > f->d - f->a) | |
f->c = f->d; | |
} | |
} |