Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/format/gcc_diag-1.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
1 /* Test for GCC diagnositc formats. */ | 1 /* Test for GCC diagnostic formats. */ |
2 /* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */ | 2 /* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */ |
3 /* { dg-do compile } */ | 3 /* { dg-do compile } */ |
4 /* { dg-options "-Wformat" } */ | 4 /* { dg-options "-Wformat" } */ |
5 | 5 |
6 #include "format.h" | 6 #include "format.h" |
22 | 22 |
23 extern int diag (const char *, ...) ATTRIBUTE_DIAG(__gcc_diag__); | 23 extern int diag (const char *, ...) ATTRIBUTE_DIAG(__gcc_diag__); |
24 extern int tdiag (const char *, ...) ATTRIBUTE_DIAG(__gcc_tdiag__); | 24 extern int tdiag (const char *, ...) ATTRIBUTE_DIAG(__gcc_tdiag__); |
25 extern int cdiag (const char *, ...) ATTRIBUTE_DIAG(__gcc_cdiag__); | 25 extern int cdiag (const char *, ...) ATTRIBUTE_DIAG(__gcc_cdiag__); |
26 extern int cxxdiag (const char *, ...) ATTRIBUTE_DIAG(__gcc_cxxdiag__); | 26 extern int cxxdiag (const char *, ...) ATTRIBUTE_DIAG(__gcc_cxxdiag__); |
27 extern int dump (const char *, ...) ATTRIBUTE_DIAG(__gcc_dump_printf__); | |
27 | 28 |
28 void | 29 void |
29 foo (int i, int i1, int i2, unsigned int u, double d, char *s, void *p, | 30 foo (int i, int i1, int i2, unsigned int u, double d, char *s, void *p, |
30 int *n, short int *hn, long int l, unsigned long int ul, | 31 int *n, short int *hn, long int l, unsigned long int ul, |
31 long int *ln, long double ld, wint_t lc, wchar_t *ls, llong ll, | 32 long int *ln, long double ld, wint_t lc, wchar_t *ls, llong ll, |
37 /* Acceptable C90 specifiers, flags and modifiers. */ | 38 /* Acceptable C90 specifiers, flags and modifiers. */ |
38 diag ("%%"); | 39 diag ("%%"); |
39 tdiag ("%%"); | 40 tdiag ("%%"); |
40 cdiag ("%%"); | 41 cdiag ("%%"); |
41 cxxdiag ("%%"); | 42 cxxdiag ("%%"); |
43 dump ("%%"); | |
42 diag ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p); | 44 diag ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p); |
43 tdiag ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p); | 45 tdiag ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p); |
44 cdiag ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p); | 46 cdiag ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p); |
45 cxxdiag ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p); | 47 cxxdiag ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p); |
48 dump ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p); | |
46 diag ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p); | 49 diag ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p); |
47 tdiag ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p); | 50 tdiag ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p); |
48 cdiag ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p); | 51 cdiag ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p); |
49 cxxdiag ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p); | 52 cxxdiag ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p); |
53 dump ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p); | |
50 diag ("%ld%li%lo%lu%lx", l, l, ul, ul, ul); | 54 diag ("%ld%li%lo%lu%lx", l, l, ul, ul, ul); |
51 tdiag ("%ld%li%lo%lu%lx", l, l, ul, ul, ul); | 55 tdiag ("%ld%li%lo%lu%lx", l, l, ul, ul, ul); |
52 cdiag ("%ld%li%lo%lu%lx", l, l, ul, ul, ul); | 56 cdiag ("%ld%li%lo%lu%lx", l, l, ul, ul, ul); |
53 cxxdiag ("%ld%li%lo%lu%lx", l, l, ul, ul, ul); | 57 cxxdiag ("%ld%li%lo%lu%lx", l, l, ul, ul, ul); |
58 dump ("%ld%li%lo%lu%lx", l, l, ul, ul, ul); | |
54 diag ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull); | 59 diag ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull); |
55 tdiag ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull); | 60 tdiag ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull); |
56 cdiag ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull); | 61 cdiag ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull); |
57 cxxdiag ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull); | 62 cxxdiag ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull); |
63 dump ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull); | |
58 diag ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull); | 64 diag ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull); |
59 tdiag ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull); | 65 tdiag ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull); |
60 cdiag ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull); | 66 cdiag ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull); |
61 cxxdiag ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull); | 67 cxxdiag ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull); |
68 dump ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull); | |
62 diag ("%.*s", i, s); | 69 diag ("%.*s", i, s); |
63 tdiag ("%.*s", i, s); | 70 tdiag ("%.*s", i, s); |
64 cdiag ("%.*s", i, s); | 71 cdiag ("%.*s", i, s); |
65 cxxdiag ("%.*s", i, s); | 72 cxxdiag ("%.*s", i, s); |
73 dump ("%.*s", i, s); | |
66 | 74 |
67 /* Extensions provided in the diagnostic framework. */ | 75 /* Extensions provided in the diagnostic framework. */ |
68 diag ("%m"); | 76 diag ("%m"); |
69 tdiag ("%m"); | 77 tdiag ("%m"); |
70 cdiag ("%m"); | 78 cdiag ("%m"); |
71 cxxdiag ("%m"); | 79 cxxdiag ("%m"); |
80 dump ("%m"); | |
72 | 81 |
73 /* Quote directives to avoid "warning: conversion used unquoted." */ | 82 /* Quote directives to avoid "warning: conversion used unquoted." */ |
74 tdiag ("%<%D%F%T%V%>", t1, t1, t1, t1); | 83 tdiag ("%<%D%F%T%V%>", t1, t1, t1, t1); |
75 tdiag ("%<%+D%+F%+T%+V%>", t1, t1, t1, t1); | 84 tdiag ("%<%+D%+F%+T%+V%>", t1, t1, t1, t1); |
76 tdiag ("%q+D%q+F%q+T%q+V", t1, t1, t1, t1); | 85 tdiag ("%q+D%q+F%q+T%q+V", t1, t1, t1, t1); |
85 cxxdiag ("%<%#A%#D%#E%#F%#T%#V%>", t1, t1, t1, t1, t1, t1); | 94 cxxdiag ("%<%#A%#D%#E%#F%#T%#V%>", t1, t1, t1, t1, t1, t1); |
86 cxxdiag ("%<%+A%+D%+E%+F%+T%+V%>", t1, t1, t1, t1, t1, t1); | 95 cxxdiag ("%<%+A%+D%+E%+F%+T%+V%>", t1, t1, t1, t1, t1, t1); |
87 cxxdiag ("%<%+#A%+#D%+#E%+#F%+#T%+#V%>", t1, t1, t1, t1, t1, t1); | 96 cxxdiag ("%<%+#A%+#D%+#E%+#F%+#T%+#V%>", t1, t1, t1, t1, t1, t1); |
88 cxxdiag ("%C%L%O%P%Q", i, i, i, i, i); | 97 cxxdiag ("%C%L%O%P%Q", i, i, i, i, i); |
89 | 98 |
90 tdiag ("%v%qv%#v", i, i, i); | 99 tdiag ("%v", i); /* { dg-warning "format" } */ |
91 cdiag ("%v%qv%#v", i, i, i); | 100 cdiag ("%v%qv%#v", i, i, i); |
92 cxxdiag ("%v%qv%#v", i, i, i); | 101 cxxdiag ("%v", i); /* { dg-warning "format" } */ |
93 | 102 |
94 tdiag ("%Z", v, v_len); | 103 tdiag ("%Z", v, v_len); |
95 cdiag ("%Z", v, v_len); | 104 cdiag ("%Z", v, v_len); |
96 cxxdiag ("%Z", v, v_len); | 105 cxxdiag ("%Z", v, v_len); |
106 dump ("%Z", v, v_len); | |
97 | 107 |
98 /* Bad stuff with extensions. */ | 108 /* Bad stuff with extensions. */ |
99 diag ("%m", i); /* { dg-warning "format" "extra arg" } */ | 109 diag ("%m", i); /* { dg-warning "format" "extra arg" } */ |
100 tdiag ("%m", i); /* { dg-warning "format" "extra arg" } */ | 110 tdiag ("%m", i); /* { dg-warning "format" "extra arg" } */ |
101 cdiag ("%m", i); /* { dg-warning "format" "extra arg" } */ | 111 cdiag ("%m", i); /* { dg-warning "format" "extra arg" } */ |
102 cxxdiag ("%m", i); /* { dg-warning "format" "extra arg" } */ | 112 cxxdiag ("%m", i); /* { dg-warning "format" "extra arg" } */ |
113 dump ("%m", i); /* { dg-warning "format" "extra arg" } */ | |
103 diag ("%#m"); /* { dg-warning "format" "bogus modifier" } */ | 114 diag ("%#m"); /* { dg-warning "format" "bogus modifier" } */ |
104 tdiag ("%#m"); /* { dg-warning "format" "bogus modifier" } */ | 115 tdiag ("%#m"); /* { dg-warning "format" "bogus modifier" } */ |
105 cdiag ("%#m"); /* { dg-warning "format" "bogus modifier" } */ | 116 cdiag ("%#m"); /* { dg-warning "format" "bogus modifier" } */ |
106 cxxdiag ("%#m"); /* { dg-warning "format" "bogus modifier" } */ | 117 cxxdiag ("%#m"); /* { dg-warning "format" "bogus modifier" } */ |
118 dump ("%#m"); /* { dg-warning "format" "bogus modifier" } */ | |
107 diag ("%+m"); /* { dg-warning "format" "bogus modifier" } */ | 119 diag ("%+m"); /* { dg-warning "format" "bogus modifier" } */ |
108 tdiag ("%+m"); /* { dg-warning "format" "bogus modifier" } */ | 120 tdiag ("%+m"); /* { dg-warning "format" "bogus modifier" } */ |
109 cdiag ("%+m"); /* { dg-warning "format" "bogus modifier" } */ | 121 cdiag ("%+m"); /* { dg-warning "format" "bogus modifier" } */ |
110 cxxdiag ("%+m"); /* { dg-warning "format" "bogus modifier" } */ | 122 cxxdiag ("%+m"); /* { dg-warning "format" "bogus modifier" } */ |
123 dump ("%+m"); /* { dg-warning "format" "bogus modifier" } */ | |
111 diag ("%D", t1); /* { dg-warning "format" "bogus tree" } */ | 124 diag ("%D", t1); /* { dg-warning "format" "bogus tree" } */ |
112 tdiag ("%A", t1); /* { dg-warning "format" "bogus tree" } */ | 125 tdiag ("%A", t1); /* { dg-warning "format" "bogus tree" } */ |
113 tdiag ("%E", t1); | 126 tdiag ("%E", t1); |
114 tdiag ("%#D", t1); /* { dg-warning "format" "bogus modifier" } */ | 127 tdiag ("%#D", t1); /* { dg-warning "format" "bogus modifier" } */ |
115 cdiag ("%A", t1); /* { dg-warning "format" "bogus tree" } */ | 128 cdiag ("%A", t1); /* { dg-warning "format" "bogus tree" } */ |