annotate gcc/testsuite/c-c++-common/Wbool-operation-1.c @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents 1830386684a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR c/77490 */
kono
parents:
diff changeset
2 /* { dg-do compile } */
kono
parents:
diff changeset
3 /* { dg-options "-Wall -Wno-psabi" } */
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
4 /* { dg-additional-options "-Wno-volatile" { target c++ } } */
111
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 #ifndef __cplusplus
kono
parents:
diff changeset
7 # define bool _Bool
kono
parents:
diff changeset
8 #endif
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 typedef volatile bool T;
kono
parents:
diff changeset
11 typedef int __attribute__ ((vector_size (4 * sizeof (int)))) v4si;
kono
parents:
diff changeset
12 extern bool foo (void);
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 int
kono
parents:
diff changeset
15 fn (bool b, bool b2, T b3, int n, v4si v)
kono
parents:
diff changeset
16 {
kono
parents:
diff changeset
17 int r = 0;
kono
parents:
diff changeset
18
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
19 r += ~b; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
20 r += n + ~b; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
21 r += ~(n == 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
22 r += ~(n || 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
23 r += ~b == 1; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
24 r += ~(++n, n == 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
25 r += ~(++n, n > 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
26 r += ~(++n, n && 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
27 r += (++n, ~b); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
28 r += ~b3; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
29 r += ~foo (); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
30 r += ~(bool) !1; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
111
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 v = ~v;
kono
parents:
diff changeset
33 r += ~(int) b;
kono
parents:
diff changeset
34 r += -b;
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 return r;
kono
parents:
diff changeset
37 }
kono
parents:
diff changeset
38
kono
parents:
diff changeset
39 /* { dg-prune-output ".*GCC vector passed by reference.*" } */