1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fno-ipa-cp -fipa-sra -fdump-ipa-sra" } */
3
4 extern void consume (int);
5 extern int glob, glob1, glob2;
6 extern int get (void);
7
8
9 static void __attribute__ ((noinline))
10 foo (int a)
11 {
12 a = glob;
13 consume (a);
14 a = get ();
15 consume (a);
16 __asm__ volatile("" : : ""(a));
17 consume (a);
18
19 if (glob1)
20 a = glob1;
21 else
22 a = glob2;
23 consume (a);
24 }
25
26 int
27 bar (int a)
28 {
29 foo (a);
30 glob = a;
31 return 0;
32 }
33
34 /* { dg-final { scan-ipa-dump "Will remove parameter 0" "sra" } } */