annotate gcc/testsuite/gcc.dg/wtr-int-type-1.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 -Wtraditional warnings on integer constant types.
kono
parents:
diff changeset
2 Note, gcc should omit these warnings in system header files.
kono
parents:
diff changeset
3 By Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8/22/2000. */
kono
parents:
diff changeset
4 /* { dg-do compile } */
kono
parents:
diff changeset
5 /* { dg-options "-std=c99 -Wtraditional" } */
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 void
kono
parents:
diff changeset
8 testfunc ()
kono
parents:
diff changeset
9 {
kono
parents:
diff changeset
10 long long i;
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 /* Octal and hex values shouldn't issue -Wtraditional warnings. */
kono
parents:
diff changeset
13 i = 0x80000000;
kono
parents:
diff changeset
14 i = 0xFFFFFFFF;
kono
parents:
diff changeset
15 i = 037777777777;
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 i = 0x8000000000000000;
kono
parents:
diff changeset
18 i = 0xFFFFFFFFFFFFFFFF;
kono
parents:
diff changeset
19 i = 01777777777777777777777;
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 /* Nor should values outside the range of (32-bit) unsigned long but
kono
parents:
diff changeset
22 inside the range of long long. [since -traditional has no long long,
kono
parents:
diff changeset
23 we can pretend it worked the way it does in C99.] */
kono
parents:
diff changeset
24 i = 9223372036854775807;
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 /* But this one should, since it doesn't fit in long (long), but
kono
parents:
diff changeset
27 does fit in unsigned long (long). */
kono
parents:
diff changeset
28 i = 18446744073709551615; /* { dg-warning "integer constant is so large that it is unsigned" "so large" } */
kono
parents:
diff changeset
29 /* { dg-warning "this decimal constant would be unsigned in ISO C90" "ISO C90" { target *-*-* } .-1 } */
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 # 29 "sys-header.h" 3
kono
parents:
diff changeset
32 }
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 void
kono
parents:
diff changeset
35 testfunc2( )
kono
parents:
diff changeset
36 {
kono
parents:
diff changeset
37 long long i;
kono
parents:
diff changeset
38
kono
parents:
diff changeset
39 /* We are in system headers now, no -Wtraditional warnings should issue. */
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 i = 0x80000000;
kono
parents:
diff changeset
42 i = 0xFFFFFFFF;
kono
parents:
diff changeset
43 i = 037777777777;
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 i = 0x8000000000000000;
kono
parents:
diff changeset
46 i = 0xFFFFFFFFFFFFFFFF;
kono
parents:
diff changeset
47 i = 01777777777777777777777;
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 i = 9223372036854775807;
kono
parents:
diff changeset
50 i = 18446744073709551615;
kono
parents:
diff changeset
51 }
kono
parents:
diff changeset
52