1 2011-02-02 Tom Tromey <tromey@redhat.com>
3 * c-parser.c (c_parser_asm_string_literal): Clear
4 warn_overlength_strings.
6 * gcc.dg/Woverlength-strings-pedantic-c90-asm.c: New file.
7 * gcc.dg/Woverlength-strings-pedantic-c89-asm.c: New file.
8 * gcc.dg/Woverlength-strings-pedantic-c99-asm.c: New file.
12 @@ -3264,6 +3264,8 @@ static tree
13 c_parser_asm_string_literal (c_parser *parser)
16 + int save_flag = warn_overlength_strings;
17 + warn_overlength_strings = 0;
18 if (c_parser_next_token_is (parser, CPP_STRING))
20 str = c_parser_peek_token (parser)->value;
21 @@ -3281,6 +3283,7 @@ c_parser_asm_string_literal (c_parser *parser)
22 c_parser_error (parser, "expected string literal");
25 + warn_overlength_strings = save_flag;
29 --- gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c89-asm.c
30 +++ gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c89-asm.c
32 +/* -Woverlength-strings complains about string constants which are too long
33 + for the C standard's "minimum maximum" limits. It is off by default,
34 + but implied by -pedantic. */
36 +/* { dg-options "-std=c89 -pedantic" } */
39 +#define HUN TEN TEN TEN TEN TEN TEN TEN TEN TEN TEN
40 +#define THO HUN HUN HUN HUN HUN HUN HUN HUN HUN HUN
42 +/* C89's minimum-maximum is 509. */
43 +__asm__ (HUN HUN HUN HUN HUN TEN);
45 +/* C99's minimum-maximum is 4095. */
47 + THO THO THO THO /* 4000 */
48 + TEN TEN TEN TEN TEN /* 4050 */
49 + TEN TEN TEN TEN /* 4090 */
55 + /* C89's minimum-maximum is 509. */
56 + __asm__ (HUN HUN HUN HUN HUN TEN);
57 + __asm__ (HUN HUN HUN HUN HUN TEN : : );
58 + __asm__ goto (HUN HUN HUN HUN HUN TEN : : : : label);
60 + /* C99's minimum-maximum is 4095. */
62 + THO THO THO THO /* 4000 */
63 + TEN TEN TEN TEN TEN /* 4050 */
64 + TEN TEN TEN TEN /* 4090 */
67 + THO THO THO THO /* 4000 */
68 + TEN TEN TEN TEN TEN /* 4050 */
69 + TEN TEN TEN TEN /* 4090 */
72 + THO THO THO THO /* 4000 */
73 + TEN TEN TEN TEN TEN /* 4050 */
74 + TEN TEN TEN TEN /* 4090 */
75 + "123456" : : : : label);
79 --- gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c90-asm.c
80 +++ gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c90-asm.c
82 +/* -Woverlength-strings complains about string constants which are too long
83 + for the C standard's "minimum maximum" limits. It is off by default,
84 + but implied by -pedantic. */
86 +/* { dg-options "-std=c90 -pedantic" } */
89 +#define HUN TEN TEN TEN TEN TEN TEN TEN TEN TEN TEN
90 +#define THO HUN HUN HUN HUN HUN HUN HUN HUN HUN HUN
92 +/* C89's minimum-maximum is 509. */
93 +__asm__ (HUN HUN HUN HUN HUN TEN);
95 +/* C99's minimum-maximum is 4095. */
97 + THO THO THO THO /* 4000 */
98 + TEN TEN TEN TEN TEN /* 4050 */
99 + TEN TEN TEN TEN /* 4090 */
105 + /* C89's minimum-maximum is 509. */
106 + __asm__ (HUN HUN HUN HUN HUN TEN);
107 + __asm__ (HUN HUN HUN HUN HUN TEN : :);
108 + __asm__ goto (HUN HUN HUN HUN HUN TEN : : : : label);
110 + /* C99's minimum-maximum is 4095. */
112 + THO THO THO THO /* 4000 */
113 + TEN TEN TEN TEN TEN /* 4050 */
114 + TEN TEN TEN TEN /* 4090 */
117 + THO THO THO THO /* 4000 */
118 + TEN TEN TEN TEN TEN /* 4050 */
119 + TEN TEN TEN TEN /* 4090 */
122 + THO THO THO THO /* 4000 */
123 + TEN TEN TEN TEN TEN /* 4050 */
124 + TEN TEN TEN TEN /* 4090 */
125 + "123456" : : : : label);
130 --- gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c99-asm.c
131 +++ gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c99-asm.c
133 +/* -Woverlength-strings complains about string constants which are too long
134 + for the C standard's "minimum maximum" limits. It is off by default,
135 + but implied by -pedantic. */
137 +/* { dg-options "-std=c99 -pedantic" } */
140 +#define HUN TEN TEN TEN TEN TEN TEN TEN TEN TEN TEN
141 +#define THO HUN HUN HUN HUN HUN HUN HUN HUN HUN HUN
143 +/* C89's minimum-maximum is 509. */
144 +__asm__ (HUN HUN HUN HUN HUN TEN);
146 +/* C99's minimum-maximum is 4095. */
148 + THO THO THO THO /* 4000 */
149 + TEN TEN TEN TEN TEN /* 4050 */
150 + TEN TEN TEN TEN /* 4090 */
156 + /* C89's minimum-maximum is 509. */
157 + __asm__ (HUN HUN HUN HUN HUN TEN);
158 + __asm__ (HUN HUN HUN HUN HUN TEN : :);
159 + __asm__ goto (HUN HUN HUN HUN HUN TEN : : : : label);
161 + /* C99's minimum-maximum is 4095. */
163 + THO THO THO THO /* 4000 */
164 + TEN TEN TEN TEN TEN /* 4050 */
165 + TEN TEN TEN TEN /* 4090 */
168 + THO THO THO THO /* 4000 */
169 + TEN TEN TEN TEN TEN /* 4050 */
170 + TEN TEN TEN TEN /* 4090 */
173 + THO THO THO THO /* 4000 */
174 + TEN TEN TEN TEN TEN /* 4050 */
175 + TEN TEN TEN TEN /* 4090 */
176 + "123456" : : : : label);