1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
/* 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 } */
}
|