[PATCH] RFA: repost #2 fix exec-charset extern translations
Eric Christopher
echristo@redhat.com
Tue Apr 13 00:16:00 GMT 2004
Here we go again. Same patch. :)
Tested on s390x-linux-gnu, i686-pc-linux-gnu.
-eric
--
Eric Christopher <echristo@redhat.com>
2004-04-12 Eric Christopher <echristo@redhat.com>
* cp/parser.c (cp_parser_declaration): Move second
c_lex_string_translate earlier in function.
2004-04-12 Eric Christopher <echristo@redhat.com>
* g++.dg/charset/charset.exp: Test .cc files.
* g++.dg/charset/extern3.cc: New file.
* gcc.dg/charset/extern.c: Ditto.
Index: gcc/cp/parser.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/parser.c,v
retrieving revision 1.188
diff -u -p -w -r1.188 parser.c
--- gcc/cp/parser.c 30 Mar 2004 19:19:01 -0000 1.188
+++ gcc/cp/parser.c 12 Apr 2004 23:37:25 -0000
@@ -6349,6 +6349,8 @@ cp_parser_declaration (cp_parser* parser
if (token1.type != CPP_EOF)
token2 = *cp_lexer_peek_nth_token (parser->lexer, 2);
+ c_lex_string_translate = true;
+
/* If the next token is `extern' and the following token is a string
literal, then we have a linkage specification. */
if (token1.keyword == RID_EXTERN
@@ -6398,8 +6400,6 @@ cp_parser_declaration (cp_parser* parser
else
/* Try to parse a block-declaration, or a function-definition. */
cp_parser_block_declaration (parser, /*statement_p=*/false);
-
- c_lex_string_translate = true;
}
/* Parse a block-declaration.
Index: gcc/testsuite//g++.dg/charset/charset.exp
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/charset/charset.exp,v
retrieving revision 1.2
diff -u -p -w -r1.2 charset.exp
--- gcc/testsuite//g++.dg/charset/charset.exp 28 Feb 2004 00:28:54
-0000 1.2
+++ gcc/testsuite//g++.dg/charset/charset.exp 12 Apr 2004 23:37:26 -0000
@@ -37,7 +37,7 @@ if ![info exists DEFAULT_CHARSETCFLAGS]
dg-init
# Main loop.
-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.{c,S} ]] \
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.{c,cc,S} ]] \
"" $DEFAULT_CHARSETCFLAGS
# All done.
Index: gcc/testsuite//g++.dg/charset/extern3.cc
===================================================================
RCS file: gcc/testsuite//g++.dg/charset/extern3.cc
diff -N gcc/testsuite//g++.dg/charset/extern3.cc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gcc/testsuite//g++.dg/charset/extern3.cc 12 Apr 2004 23:37:26 -0000
@@ -0,0 +1,8 @@
+/* { dg-do compile }
+ { dg-require-iconv "IBM-1047" }
+ { dg-final { scan-assembler-not "abcdefghijklmnopqrstuvwxyz" } } */
+
+extern void foo (void)
+{
+ char str[]="abcdefghijklmnopqrstuvwxyz";
+}
Index: gcc/testsuite//gcc.dg/charset/extern.c
===================================================================
RCS file: gcc/testsuite//gcc.dg/charset/extern.c
diff -N gcc/testsuite//gcc.dg/charset/extern.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gcc/testsuite//gcc.dg/charset/extern.c 12 Apr 2004 23:37:27 -0000
@@ -0,0 +1,8 @@
+/* { dg-do compile }
+ { dg-require-iconv "IBM-1047" }
+ { dg-final { scan-assembler-not "abcdefghijklmnopqrstuvwxyz" } } */
+
+extern void foo (void)
+{
+ char str[]="abcdefghijklmnopqrstuvwxyz";
+}
More information about the Gcc-patches
mailing list