[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