/* PR c/111309 */ /* { dg-do compile } */ /* { dg-additional-options "-std=c99" { target c } } */ #ifndef __cplusplus #define bool _Bool #define true ((_Bool) 1) #define false ((_Bool) 0) #endif void foo (void) { enum E { E0 = 0 }; struct S { int s; } s; __builtin_clzg (); /* { dg-error "too few arguments" } */ __builtin_clzg (0U, 1, 2); /* { dg-error "too many arguments" } */ __builtin_clzg (0); /* { dg-error "has signed type" } */ __builtin_clzg (0.0); /* { dg-error "does not have integral type" } */ __builtin_clzg (s); /* { dg-error "does not have integral type" } */ __builtin_clzg (true); /* { dg-error "has boolean type" } */ __builtin_clzg (E0); /* { dg-error "has signed type" "" { target c } } */ /* { dg-error "has enumerated type" "" { target c++ } .-1 } */ __builtin_clzg (0, 0); /* { dg-error "has signed type" } */ __builtin_clzg (0.0, 0); /* { dg-error "does not have integral type" } */ __builtin_clzg (s, 0); /* { dg-error "does not have integral type" } */ __builtin_clzg (true, 0); /* { dg-error "has boolean type" } */ __builtin_clzg (E0, 0); /* { dg-error "has signed type" "" { target c } } */ /* { dg-error "has enumerated type" "" { target c++ } .-1 } */ __builtin_clzg (0U, 2.0); /* { dg-error "does not have integral type" } */ __builtin_clzg (0U, s); /* { dg-error "does not have integral type" } */ __builtin_clzg (0U, 2LL); /* { dg-error "does not have 'int' type" } */ __builtin_clzg (0U, 2U); /* { dg-error "does not have 'int' type" } */ __builtin_clzg (0U, true); __builtin_clzg (0U, E0); /* { dg-error "does not have 'int' type" "" { target { c++ && { ! short_enums } } } } */ __builtin_ctzg (); /* { dg-error "too few arguments" } */ __builtin_ctzg (0U, 1, 2); /* { dg-error "too many arguments" } */ __builtin_ctzg (0); /* { dg-error "has signed type" } */ __builtin_ctzg (0.0); /* { dg-error "does not have integral type" } */ __builtin_ctzg (s); /* { dg-error "does not have integral type" } */ __builtin_ctzg (true); /* { dg-error "has boolean type" } */ __builtin_ctzg (E0); /* { dg-error "has signed type" "" { target c } } */ /* { dg-error "has enumerated type" "" { target c++ } .-1 } */ __builtin_ctzg (0, 0); /* { dg-error "has signed type" } */ __builtin_ctzg (0.0, 0); /* { dg-error "does not have integral type" } */ __builtin_ctzg (s, 0); /* { dg-error "does not have integral type" } */ __builtin_ctzg (true, 0); /* { dg-error "has boolean type" } */ __builtin_ctzg (E0, 0); /* { dg-error "has signed type" "" { target c } } */ /* { dg-error "has enumerated type" "" { target c++ } .-1 } */ __builtin_ctzg (0U, 2.0); /* { dg-error "does not have integral type" } */ __builtin_ctzg (0U, 2LL); /* { dg-error "does not have 'int' type" } */ __builtin_ctzg (0U, 2U); /* { dg-error "does not have 'int' type" } */ __builtin_ctzg (0U, true); __builtin_ctzg (0U, E0); /* { dg-error "does not have 'int' type" "" { target { c++ && { ! short_enums } } } } */ __builtin_clrsbg (); /* { dg-error "too few arguments" } */ __builtin_clrsbg (0, 1); /* { dg-error "too many arguments" } */ __builtin_clrsbg (0U); /* { dg-error "has unsigned type" } */ __builtin_clrsbg (0.0); /* { dg-error "does not have integral type" } */ __builtin_clrsbg (s); /* { dg-error "does not have integral type" } */ __builtin_clrsbg (true); /* { dg-error "has boolean type" } */ __builtin_clrsbg (E0); /* { dg-error "has enumerated type" "" { target c++ } } */ __builtin_ffsg (); /* { dg-error "too few arguments" } */ __builtin_ffsg (0, 1); /* { dg-error "too many arguments" } */ __builtin_ffsg (0U); /* { dg-error "has unsigned type" } */ __builtin_ffsg (0.0); /* { dg-error "does not have integral type" } */ __builtin_ffsg (s); /* { dg-error "does not have integral type" } */ __builtin_ffsg (true); /* { dg-error "has boolean type" } */ __builtin_ffsg (E0); /* { dg-error "has enumerated type" "" { target c++ } } */ __builtin_parityg (); /* { dg-error "too few arguments" } */ __builtin_parityg (0U, 1); /* { dg-error "too many arguments" } */ __builtin_parityg (0); /* { dg-error "has signed type" } */ __builtin_parityg (0.0); /* { dg-error "does not have integral type" } */ __builtin_parityg (s); /* { dg-error "does not have integral type" } */ __builtin_parityg (true); /* { dg-error "has boolean type" } */ __builtin_parityg (E0); /* { dg-error "has signed type" "" { target c } } */ /* { dg-error "has enumerated type" "" { target c++ } .-1 } */ __builtin_popcountg (); /* { dg-error "too few arguments" } */ __builtin_popcountg (0U, 1); /* { dg-error "too many arguments" } */ __builtin_popcountg (0); /* { dg-error "has signed type" } */ __builtin_popcountg (0.0); /* { dg-error "does not have integral type" } */ __builtin_popcountg (s); /* { dg-error "does not have integral type" } */ __builtin_popcountg (true); /* { dg-error "has boolean type" } */ __builtin_popcountg (E0); /* { dg-error "has signed type" "" { target c } } */ /* { dg-error "has enumerated type" "" { target c++ } .-1 } */ }