/* { dg-do compile } */ | |
/* { dg-options "-O3 -fno-early-inlining" } */ | |
class A | |
{ | |
public: | |
int a; | |
void *stuff; | |
}; | |
class B | |
{ | |
public: | |
int b; | |
void *other_stuff; | |
A array[50]; | |
}; | |
extern B gb; | |
int process_A (A *a) | |
{ | |
return a->a; | |
} | |
int process_A_complex (A *a) | |
{ | |
return process_A (a+3); | |
} | |
int process_B (B *b) | |
{ | |
return process_A_complex (&b->array[0]); | |
} | |
int foo (void) | |
{ | |
return process_B (&gb); | |
} | |