1 /* Functional tests for the "target" attribute and pragma. */ 2 3 /* { dg-do compile */ 4 /* { dg-require-effective-target target_attribute } */ 5 /* { dg-options "-O3 -march=zEC12 -mno-htm -fno-ipa-icf" } */ 6 7 #pragma GCC target("htm") p1(void)8void p1(void) 9 { 10 #ifndef __HTM__ 11 #error __HTM__ is not defined 12 #endif 13 __builtin_tend (); 14 } 15 #pragma GCC reset_options 16 17 #pragma GCC target("no-htm") p0(void)18void p0(void) 19 { 20 #ifdef __HTM__ 21 #error __HTM__ is defined 22 #endif 23 __builtin_tend (); /* { dg-error "is not supported without -mhtm" } */ 24 } 25 #pragma GCC reset_options 26 27 __attribute__ ((target("htm"))) a1(void)28void a1(void) 29 { 30 #ifdef __HTM__ 31 #error __HTM__ is defined 32 #endif 33 __builtin_tend (); 34 } 35 36 __attribute__ ((target("no-htm"))) a0(void)37void a0(void) 38 { 39 #ifdef __HTM__ 40 #error __HTM__ is defined 41 #endif 42 __builtin_tend (); /* { dg-error "is not supported without -mhtm" } */ 43 } 44 htmd(void)45void htmd(void) 46 { 47 #ifdef __HTM__ 48 #error __HTM__ is defined 49 #endif 50 __builtin_tend (); /* { dg-error "is not supported without -mhtm" } */ 51 } 52