OSDN Git Service

* tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / compile / pr26840.c
1 extern int f1 (void **);
2 extern void f2 (void *);
3
4 struct s
5 {
6   unsigned char field1;
7   int field2;
8 };
9
10 static inline struct s *
11 get_globals (void)
12 {
13   struct s * r;
14   void * rr;
15
16   if (f1 (&rr))
17     return 0;
18   r = rr;
19   if (! r)
20     {
21       extern struct s t;
22       r = &t;
23     }
24   r->field1 = 1;
25   return r;
26 }
27
28 void
29 atexit_common (const void *dso)
30 {
31   struct s *g = get_globals ();
32
33   if (! g)
34     return;
35   if (g->field1)
36     {
37       g->field2 = 0;
38       f2 (g);
39     }
40   else
41     f2 (g);
42 }