1 /* Functional tests for the "target" attribute and pragma. */ 2 3 /* { dg-do compile } */ 4 /* { dg-require-effective-target target_attribute } */ 5 /* { dg-options "-mno-warn-dynamicstack" } */ 6 7 #pragma GCC target("warn-dynamicstack") p1(int s)8void p1(int s) 9 { 10 char b[s]; 11 } /* { dg-warning "uses dynamic stack allocation" } */ 12 #pragma GCC reset_options 13 14 #pragma GCC target("no-warn-dynamicstack") p0(int s)15void p0(int s) 16 { 17 char b[s]; 18 } 19 #pragma GCC reset_options 20 21 __attribute__ ((target("warn-dynamicstack"))) a1(int s)22void a1(int s) 23 { 24 char b[s]; 25 } /* { dg-warning "uses dynamic stack allocation" } */ 26 27 __attribute__ ((target("no-warn-dynamicstack"))) a0(int s)28void a0(int s) 29 { 30 char b[s]; 31 } 32 d(int s)33void d(int s) 34 { 35 char b[s]; 36 } 37