// PR tree-optimization/42645 | |
// { dg-do compile } | |
// { dg-options "-fcompare-debug -O1" } | |
extern void foo (); | |
struct S | |
{ | |
struct T | |
{ | |
int t1; | |
char t2[4]; | |
T *t3; | |
} t; | |
int m1 () const { return t.t3[0].t1; } | |
char *m2 () { foo (); return 0; } | |
void m3 (int x) { char *m = m2 (); if (m1 () > 0 && x > 0); } | |
void m4 () { if (m1 () > 0) for (int i = 0; i < 4; i++) t.t2[i] = 0; } | |
}; | |
void | |
f (S *a) | |
{ | |
a->m3 (0); | |
a->m4 (); | |
} |