annotate gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-6.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR middle-end/77721 - -Wformat-overflow not uses arg range for converted vars
kono
parents:
diff changeset
2 Test to verify that the correct range information is made available to the
kono
parents:
diff changeset
3 -Wformat-lenght check to prevent warnings. */
kono
parents:
diff changeset
4 /* { dg-do compile } */
kono
parents:
diff changeset
5 /* { dg-options "-O2 -Wformat -Wformat-overflow -fdump-tree-optimized" } */
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 void abort (void);
kono
parents:
diff changeset
8 int snprintf (char*, __SIZE_TYPE__, const char*, ...);
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 void fuchar (unsigned char j, char *p)
kono
parents:
diff changeset
11 {
kono
parents:
diff changeset
12 if (j > 99)
kono
parents:
diff changeset
13 return;
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 if (3 != snprintf (p, 4, "%3hu", j))
kono
parents:
diff changeset
16 abort ();
kono
parents:
diff changeset
17 }
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 void fschar (signed char j, char *p)
kono
parents:
diff changeset
20 {
kono
parents:
diff changeset
21 const unsigned char k = (unsigned char) j;
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 if (k > 99)
kono
parents:
diff changeset
24 return;
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 if (3 != snprintf (p, 4, "%3hhu", k))
kono
parents:
diff changeset
27 abort ();
kono
parents:
diff changeset
28 }
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30 void fushrt (unsigned short j, char *p)
kono
parents:
diff changeset
31 {
kono
parents:
diff changeset
32 if (j > 999)
kono
parents:
diff changeset
33 return;
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 if (3 != snprintf (p, 4, "%3hu", j))
kono
parents:
diff changeset
36 abort ();
kono
parents:
diff changeset
37 }
kono
parents:
diff changeset
38
kono
parents:
diff changeset
39 void fshrt (short j, char *p)
kono
parents:
diff changeset
40 {
kono
parents:
diff changeset
41 const unsigned short k = (unsigned short) j;
kono
parents:
diff changeset
42
kono
parents:
diff changeset
43 if (k > 999)
kono
parents:
diff changeset
44 return;
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 if (3 != snprintf (p, 4, "%3hu", k))
kono
parents:
diff changeset
47 abort ();
kono
parents:
diff changeset
48 }
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 void fuint (unsigned j, char *p)
kono
parents:
diff changeset
51 {
kono
parents:
diff changeset
52 if (j > 999)
kono
parents:
diff changeset
53 return;
kono
parents:
diff changeset
54
kono
parents:
diff changeset
55 snprintf (p, 4, "%3u", j);
kono
parents:
diff changeset
56 }
kono
parents:
diff changeset
57
kono
parents:
diff changeset
58 void fint (int j, char *p)
kono
parents:
diff changeset
59 {
kono
parents:
diff changeset
60 const unsigned k = (unsigned) j;
kono
parents:
diff changeset
61
kono
parents:
diff changeset
62 if (k > 999)
kono
parents:
diff changeset
63 return;
kono
parents:
diff changeset
64
kono
parents:
diff changeset
65 snprintf (p, 4, "%3u", k);
kono
parents:
diff changeset
66 }
kono
parents:
diff changeset
67
kono
parents:
diff changeset
68 void fulong (unsigned long j, char *p)
kono
parents:
diff changeset
69 {
kono
parents:
diff changeset
70 if (j > 999)
kono
parents:
diff changeset
71 return;
kono
parents:
diff changeset
72
kono
parents:
diff changeset
73 snprintf (p, 4, "%3lu", j);
kono
parents:
diff changeset
74 }
kono
parents:
diff changeset
75
kono
parents:
diff changeset
76 void flong (long j, char *p)
kono
parents:
diff changeset
77 {
kono
parents:
diff changeset
78 const unsigned long k = (unsigned long) j;
kono
parents:
diff changeset
79
kono
parents:
diff changeset
80 if (k > 999)
kono
parents:
diff changeset
81 return;
kono
parents:
diff changeset
82
kono
parents:
diff changeset
83 snprintf (p, 4, "%3lu", k);
kono
parents:
diff changeset
84 }
kono
parents:
diff changeset
85
kono
parents:
diff changeset
86 void fullong (unsigned long long j, char *p)
kono
parents:
diff changeset
87 {
kono
parents:
diff changeset
88 if (j > 999)
kono
parents:
diff changeset
89 return;
kono
parents:
diff changeset
90
kono
parents:
diff changeset
91 snprintf (p, 4, "%3llu", j);
kono
parents:
diff changeset
92 }
kono
parents:
diff changeset
93
kono
parents:
diff changeset
94 void fllong (long long j, char *p)
kono
parents:
diff changeset
95 {
kono
parents:
diff changeset
96 const unsigned long long k = (unsigned long long) j;
kono
parents:
diff changeset
97
kono
parents:
diff changeset
98 if (k > 999)
kono
parents:
diff changeset
99 return;
kono
parents:
diff changeset
100
kono
parents:
diff changeset
101 snprintf (p, 4, "%3llu", k);
kono
parents:
diff changeset
102 }
kono
parents:
diff changeset
103
kono
parents:
diff changeset
104 /* { dg-final { scan-tree-dump-not "abort" "optimized" } } */