111
|
1 /* PR c/77490 */
|
|
2 /* { dg-do compile } */
|
|
3 /* { dg-options "-Wall -Wno-psabi" } */
|
145
|
4 /* { dg-additional-options "-Wno-volatile" { target c++ } } */
|
111
|
5
|
|
6 #ifndef __cplusplus
|
|
7 # define bool _Bool
|
|
8 #endif
|
|
9
|
|
10 typedef volatile bool T;
|
|
11 typedef int __attribute__ ((vector_size (4 * sizeof (int)))) v4si;
|
|
12 extern bool foo (void);
|
|
13
|
|
14 int
|
|
15 fn (bool b, bool b2, T b3, int n, v4si v)
|
|
16 {
|
|
17 int r = 0;
|
|
18
|
145
|
19 r += ~b; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
|
20 r += n + ~b; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
|
21 r += ~(n == 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
|
22 r += ~(n || 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
|
23 r += ~b == 1; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
|
24 r += ~(++n, n == 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
|
25 r += ~(++n, n > 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
|
26 r += ~(++n, n && 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
|
27 r += (++n, ~b); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
|
28 r += ~b3; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
|
29 r += ~foo (); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
|
30 r += ~(bool) !1; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
111
|
31
|
|
32 v = ~v;
|
|
33 r += ~(int) b;
|
|
34 r += -b;
|
|
35
|
|
36 return r;
|
|
37 }
|
|
38
|
|
39 /* { dg-prune-output ".*GCC vector passed by reference.*" } */
|