/* { dg-do compile } */ /* { dg-options "-O2 -fno-ipa-cp -fipa-sra -fdump-ipa-sra" } */ extern void consume (int); extern int glob, glob1, glob2; extern int get (void); static void __attribute__ ((noinline)) foo (int a) { a = glob; consume (a); a = get (); consume (a); __asm__ volatile("" : : ""(a)); consume (a); if (glob1) a = glob1; else a = glob2; consume (a); } int bar (int a) { foo (a); glob = a; return 0; } /* { dg-final { scan-ipa-dump "Will remove parameter 0" "sra" } } */