1 /* PR c/71969 */ 2 /* { dg-do compile } */ 3 /* { dg-options "-std=gnu99 -fgnu89-inline -O2 -fdump-tree-einline-details" } */ 4 5 volatile int v; 6 #define S v++; 7 #define S10 S S S S S S S S S S 8 #define S100 S10 S10 S10 S10 S10 S10 S10 S10 S10 S10 9 10 extern inline void foo(void)11foo (void) { S100 } 12 13 inline void bar(void)14bar (void) { S100 } 15 16 static inline void baz(void)17baz (void) { S100 } 18 19 int main()20main () 21 { 22 foo (); 23 foo (); 24 foo (); 25 foo (); 26 bar (); 27 bar (); 28 bar (); 29 bar (); 30 baz (); 31 baz (); 32 baz (); 33 baz (); 34 return 0; 35 } 36 37 /* { dg-final { scan-tree-dump-times "will not early inline" 8 "einline" } } */ 38 /* { dg-final { scan-tree-dump-times "Inlining foo/\[0-9\]* into main/\[0-9\]*" 4 "einline" } } */ 39