c-parser.c (c_parser_asm_string_literal): Clear warn_overlength_strings.
gcc * c-parser.c (c_parser_asm_string_literal): Clear warn_overlength_strings. gcc/testsuite * gcc.dg/Woverlength-strings-pedantic-c90-asm.c: New file. * gcc.dg/Woverlength-strings-pedantic-c89-asm.c: New file. * gcc.dg/Woverlength-strings-pedantic-c99-asm.c: New file. From-SVN: r170948
This commit is contained in:
parent
b3ab9ea297
commit
87f9e23daf
6 changed files with 157 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2011-03-14 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* c-parser.c (c_parser_asm_string_literal): Clear
|
||||
warn_overlength_strings.
|
||||
|
||||
2011-03-14 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* c-parser.c (disable_extension_diagnostics): Save
|
||||
|
|
|
@ -3264,6 +3264,8 @@ static tree
|
|||
c_parser_asm_string_literal (c_parser *parser)
|
||||
{
|
||||
tree str;
|
||||
int save_flag = warn_overlength_strings;
|
||||
warn_overlength_strings = 0;
|
||||
if (c_parser_next_token_is (parser, CPP_STRING))
|
||||
{
|
||||
str = c_parser_peek_token (parser)->value;
|
||||
|
@ -3281,6 +3283,7 @@ c_parser_asm_string_literal (c_parser *parser)
|
|||
c_parser_error (parser, "expected string literal");
|
||||
str = NULL_TREE;
|
||||
}
|
||||
warn_overlength_strings = save_flag;
|
||||
return str;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2011-03-14 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* gcc.dg/Woverlength-strings-pedantic-c90-asm.c: New file.
|
||||
* gcc.dg/Woverlength-strings-pedantic-c89-asm.c: New file.
|
||||
* gcc.dg/Woverlength-strings-pedantic-c99-asm.c: New file.
|
||||
|
||||
2011-03-14 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* gcc.dg/Woverlength-strings-pedantic-c89-ext.c: New file.
|
||||
|
|
47
gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c89-asm.c
Normal file
47
gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c89-asm.c
Normal file
|
@ -0,0 +1,47 @@
|
|||
/* -Woverlength-strings complains about string constants which are too long
|
||||
for the C standard's "minimum maximum" limits. It is off by default,
|
||||
but implied by -pedantic. */
|
||||
|
||||
/* { dg-options "-std=c89 -pedantic" } */
|
||||
|
||||
#define TEN " "
|
||||
#define HUN TEN TEN TEN TEN TEN TEN TEN TEN TEN TEN
|
||||
#define THO HUN HUN HUN HUN HUN HUN HUN HUN HUN HUN
|
||||
|
||||
/* C89's minimum-maximum is 509. */
|
||||
__asm__ (HUN HUN HUN HUN HUN TEN);
|
||||
|
||||
/* C99's minimum-maximum is 4095. */
|
||||
__asm__ (
|
||||
THO THO THO THO /* 4000 */
|
||||
TEN TEN TEN TEN TEN /* 4050 */
|
||||
TEN TEN TEN TEN /* 4090 */
|
||||
"123456");
|
||||
|
||||
void
|
||||
f (void)
|
||||
{
|
||||
/* C89's minimum-maximum is 509. */
|
||||
__asm__ (HUN HUN HUN HUN HUN TEN);
|
||||
__asm__ (HUN HUN HUN HUN HUN TEN : : );
|
||||
__asm__ goto (HUN HUN HUN HUN HUN TEN : : : : label);
|
||||
|
||||
/* C99's minimum-maximum is 4095. */
|
||||
__asm__ (
|
||||
THO THO THO THO /* 4000 */
|
||||
TEN TEN TEN TEN TEN /* 4050 */
|
||||
TEN TEN TEN TEN /* 4090 */
|
||||
"123456");
|
||||
__asm__ (
|
||||
THO THO THO THO /* 4000 */
|
||||
TEN TEN TEN TEN TEN /* 4050 */
|
||||
TEN TEN TEN TEN /* 4090 */
|
||||
"123456" : : );
|
||||
__asm__ goto (
|
||||
THO THO THO THO /* 4000 */
|
||||
TEN TEN TEN TEN TEN /* 4050 */
|
||||
TEN TEN TEN TEN /* 4090 */
|
||||
"123456" : : : : label);
|
||||
|
||||
label: ;
|
||||
}
|
48
gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c90-asm.c
Normal file
48
gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c90-asm.c
Normal file
|
@ -0,0 +1,48 @@
|
|||
/* -Woverlength-strings complains about string constants which are too long
|
||||
for the C standard's "minimum maximum" limits. It is off by default,
|
||||
but implied by -pedantic. */
|
||||
|
||||
/* { dg-options "-std=c90 -pedantic" } */
|
||||
|
||||
#define TEN " "
|
||||
#define HUN TEN TEN TEN TEN TEN TEN TEN TEN TEN TEN
|
||||
#define THO HUN HUN HUN HUN HUN HUN HUN HUN HUN HUN
|
||||
|
||||
/* C89's minimum-maximum is 509. */
|
||||
__asm__ (HUN HUN HUN HUN HUN TEN);
|
||||
|
||||
/* C99's minimum-maximum is 4095. */
|
||||
__asm__ (
|
||||
THO THO THO THO /* 4000 */
|
||||
TEN TEN TEN TEN TEN /* 4050 */
|
||||
TEN TEN TEN TEN /* 4090 */
|
||||
"123456");
|
||||
|
||||
void
|
||||
f (void)
|
||||
{
|
||||
/* C89's minimum-maximum is 509. */
|
||||
__asm__ (HUN HUN HUN HUN HUN TEN);
|
||||
__asm__ (HUN HUN HUN HUN HUN TEN : :);
|
||||
__asm__ goto (HUN HUN HUN HUN HUN TEN : : : : label);
|
||||
|
||||
/* C99's minimum-maximum is 4095. */
|
||||
__asm__ (
|
||||
THO THO THO THO /* 4000 */
|
||||
TEN TEN TEN TEN TEN /* 4050 */
|
||||
TEN TEN TEN TEN /* 4090 */
|
||||
"123456");
|
||||
__asm__ (
|
||||
THO THO THO THO /* 4000 */
|
||||
TEN TEN TEN TEN TEN /* 4050 */
|
||||
TEN TEN TEN TEN /* 4090 */
|
||||
"123456" : :);
|
||||
__asm__ goto (
|
||||
THO THO THO THO /* 4000 */
|
||||
TEN TEN TEN TEN TEN /* 4050 */
|
||||
TEN TEN TEN TEN /* 4090 */
|
||||
"123456" : : : : label);
|
||||
|
||||
label: ;
|
||||
}
|
||||
|
48
gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c99-asm.c
Normal file
48
gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c99-asm.c
Normal file
|
@ -0,0 +1,48 @@
|
|||
/* -Woverlength-strings complains about string constants which are too long
|
||||
for the C standard's "minimum maximum" limits. It is off by default,
|
||||
but implied by -pedantic. */
|
||||
|
||||
/* { dg-options "-std=c99 -pedantic" } */
|
||||
|
||||
#define TEN " "
|
||||
#define HUN TEN TEN TEN TEN TEN TEN TEN TEN TEN TEN
|
||||
#define THO HUN HUN HUN HUN HUN HUN HUN HUN HUN HUN
|
||||
|
||||
/* C89's minimum-maximum is 509. */
|
||||
__asm__ (HUN HUN HUN HUN HUN TEN);
|
||||
|
||||
/* C99's minimum-maximum is 4095. */
|
||||
__asm__ (
|
||||
THO THO THO THO /* 4000 */
|
||||
TEN TEN TEN TEN TEN /* 4050 */
|
||||
TEN TEN TEN TEN /* 4090 */
|
||||
"123456");
|
||||
|
||||
void
|
||||
f (void)
|
||||
{
|
||||
/* C89's minimum-maximum is 509. */
|
||||
__asm__ (HUN HUN HUN HUN HUN TEN);
|
||||
__asm__ (HUN HUN HUN HUN HUN TEN : :);
|
||||
__asm__ goto (HUN HUN HUN HUN HUN TEN : : : : label);
|
||||
|
||||
/* C99's minimum-maximum is 4095. */
|
||||
__asm__ (
|
||||
THO THO THO THO /* 4000 */
|
||||
TEN TEN TEN TEN TEN /* 4050 */
|
||||
TEN TEN TEN TEN /* 4090 */
|
||||
"123456");
|
||||
__asm__ (
|
||||
THO THO THO THO /* 4000 */
|
||||
TEN TEN TEN TEN TEN /* 4050 */
|
||||
TEN TEN TEN TEN /* 4090 */
|
||||
"123456" : :);
|
||||
__asm__ goto (
|
||||
THO THO THO THO /* 4000 */
|
||||
TEN TEN TEN TEN TEN /* 4050 */
|
||||
TEN TEN TEN TEN /* 4090 */
|
||||
"123456" : : : : label);
|
||||
|
||||
label: ;
|
||||
}
|
||||
|
Loading…
Add table
Reference in a new issue