annotate gcc/testsuite/gcc.dg/compare2.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* Test for a bogus warning on comparison between signed and unsigned.
kono
parents:
diff changeset
2 This was inspired by code in gcc. */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 /* { dg-do compile } */
kono
parents:
diff changeset
5 /* { dg-options "-Wsign-compare" } */
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 int tf = 1;
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 void f(int x, unsigned int y)
kono
parents:
diff changeset
10 {
kono
parents:
diff changeset
11 /* ?: branches are constants. */
kono
parents:
diff changeset
12 x > (tf?64:128); /* { dg-bogus "changes signedness" "case 1" } */
kono
parents:
diff changeset
13 y > (tf?64:128); /* { dg-bogus "changes signedness" "case 2" } */
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 /* ?: branches are (recursively) constants. */
kono
parents:
diff changeset
16 x > (tf?64:(tf?128:256)); /* { dg-bogus "changes signedness" "case 3" } */
kono
parents:
diff changeset
17 y > (tf?64:(tf?128:256)); /* { dg-bogus "changes signedness" "case 4" } */
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 /* ?: branches are signed constants. */
kono
parents:
diff changeset
20 x > (tf?64:-1); /* { dg-bogus "changes signedness" "case 5" } */
kono
parents:
diff changeset
21 y > (tf?64:-1); /* { dg-warning "different signedness" "case 6" } */
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 /* ?: branches are (recursively) signed constants. */
kono
parents:
diff changeset
24 x > (tf?64:(tf?128:-1)); /* { dg-bogus "changes signedness" "case 7" } */
kono
parents:
diff changeset
25 y > (tf?64:(tf?128:-1)); /* { dg-warning "different signedness" "case 8" } */
kono
parents:
diff changeset
26
kono
parents:
diff changeset
27 /* Statement expression. */
kono
parents:
diff changeset
28 x > ({tf; 64;}); /* { dg-bogus "changes signedness" "case 9" } */
kono
parents:
diff changeset
29 y > ({tf; 64;}); /* { dg-bogus "changes signedness" "case 10" } */
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 /* Statement expression with recursive ?: . */
kono
parents:
diff changeset
32 x > ({tf; tf?64:(tf?128:256);}); /* { dg-bogus "changes signedness" "case 11" } */
kono
parents:
diff changeset
33 y > ({tf; tf?64:(tf?128:256);}); /* { dg-bogus "changes signedness" "case 12" } */
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 /* Statement expression with signed ?:. */
kono
parents:
diff changeset
36 x > ({tf; tf?64:-1;}); /* { dg-bogus "changes signedness" "case 13" } */
kono
parents:
diff changeset
37 y > ({tf; tf?64:-1;}); /* { dg-warning "different signedness" "case 14" } */
kono
parents:
diff changeset
38
kono
parents:
diff changeset
39 /* Statement expression with recursive signed ?:. */
kono
parents:
diff changeset
40 x > ({tf; tf?64:(tf?128:-1);}); /* { dg-bogus "changes signedness" "case 15" } */
kono
parents:
diff changeset
41 y > ({tf; tf?64:(tf?128:-1);}); /* { dg-warning "different signedness" "case 16" } */
kono
parents:
diff changeset
42
kono
parents:
diff changeset
43 /* ?: branches are constants. */
kono
parents:
diff changeset
44 tf ? x : (tf?64:32); /* { dg-bogus "changes signedness" "case 17" } */
kono
parents:
diff changeset
45 tf ? y : (tf?64:32); /* { dg-bogus "changes signedness" "case 18" } */
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 /* ?: branches are signed constants. */
kono
parents:
diff changeset
48 tf ? x : (tf?64:-1); /* { dg-bogus "changes signedness" "case 19" } */
kono
parents:
diff changeset
49 tf ? y : (tf?64:-1); /* { dg-warning "changes signedness" "case 20" } */
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 /* ?: branches are (recursively) constants. */
kono
parents:
diff changeset
52 tf ? x : (tf?64:(tf?128:256)); /* { dg-bogus "changes signedness" "case 21" } */
kono
parents:
diff changeset
53 tf ? y : (tf?64:(tf?128:256)); /* { dg-bogus "changes signedness" "case 22" } */
kono
parents:
diff changeset
54
kono
parents:
diff changeset
55 /* ?: branches are (recursively) signed constants. */
kono
parents:
diff changeset
56 tf ? x : (tf?64:(tf?128:-1)); /* { dg-bogus "changes signedness" "case 23" } */
kono
parents:
diff changeset
57 tf ? y : (tf?64:(tf?128:-1)); /* { dg-warning "changes signedness" "case 24" } */
kono
parents:
diff changeset
58 }