annotate gcc/testsuite/g++.dg/cpp0x/Wnarrowing17.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 // PR c++/90805 - detect narrowing in case values.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2 // { dg-do compile { target c++11 } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4 void f(int i, char c, unsigned u)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6 switch (i)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8 case 2149056512u:; // { dg-error "narrowing conversion of .2149056512. from .unsigned int. to .int." }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9 case (long long int) 1e10:; // { dg-error "narrowing conversion of .10000000000. from .long long int. to .int." }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10 // { dg-warning "overflow in conversion" "overflow" { target *-*-* } .-1 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13 switch (c)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14 // No narrowing, the adjusted type is int.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15 case 300:; // { dg-warning "exceeds maximum value for type" }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17 switch (u)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 case -42:; // { dg-error "narrowing conversion of .-42. from .int. to .unsigned int." }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 }