1 /* PR tree-optimization/45083 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -Wuninitialized" } */
4 
5 struct S { char *a; unsigned b; unsigned c; };
6 extern int foo (const char *);
7 extern void bar (int, int);
8 
9 static void
baz(void)10 baz (void)
11 {
12   struct S cs[1];	/* { dg-message "was declared here" } */
13   switch (cs->b)	/* { dg-warning "cs\[^\n\r\]*\\.b\[^\n\r\]*is used uninitialized" } */
14     {
15     case 101:
16       if (foo (cs->a))	/* { dg-warning "cs\[^\n\r\]*\\.a\[^\n\r\]*may be used uninitialized" } */
17 	bar (cs->c, cs->b);	/* { dg-warning "cs\[^\n\r\]*\\.c\[^\n\r\]*may be used uninitialized" } */
18     }
19 }
20 
21 void
test(void)22 test (void)
23 {
24   baz ();
25 }
26