|  | /* 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 } */ | 
|  | } |