From 4265559a69290dee56a0df1e7d83610a869b02fc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Manuel=20L=C3=B3pez-Ib=C3=A1=C3=B1ez?= <manu@gcc.gnu.org>
Date: Thu, 14 Aug 2008 13:01:58 +0000
Subject: [PATCH] re PR c++/28152 (Diagnostic about wrong use _Complex prints
 __complex__)

2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

        PR c/28152
	* c-parser.c (c_lex_one_token): Do not store the canonical spelling
	for keywords.
testsuite/
	* gcc.dg/parser-pr28152.c: New.
	* gcc.dg/parser-pr28152-2.c: New.

From-SVN: r139097
---
 gcc/ChangeLog                           |  6 ++++++
 gcc/c-parser.c                          |  2 --
 gcc/testsuite/ChangeLog                 |  6 ++++++
 gcc/testsuite/gcc.dg/parser-pr28152-2.c | 11 +++++++++++
 gcc/testsuite/gcc.dg/parser-pr28152.c   | 11 +++++++++++
 5 files changed, 34 insertions(+), 2 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/parser-pr28152-2.c
 create mode 100644 gcc/testsuite/gcc.dg/parser-pr28152.c

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 77796d5674e8..73b478e65583 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+        PR c/28152
+	* c-parser.c (c_lex_one_token): Do not store the canonical spelling
+	for keywords.
+	
 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
 
 	* tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index 6617145a6cbc..1ea9d07fcdf6 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -241,8 +241,6 @@ c_lex_one_token (c_parser *parser, c_token *token)
 	      }
 	    else
 	      {
-		/* Return the canonical spelling for this keyword.  */
-		token->value = ridpointers[(int) rid_code];
 		token->type = CPP_KEYWORD;
 		token->keyword = rid_code;
 		break;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 095d0a6450e1..bdbc3542e9ea 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+        PR c/28152
+	* gcc.dg/parser-pr28152.c: New.
+	* gcc.dg/parser-pr28152-2.c: New.
+
 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
 
 	* gcc.dg/vect/vect-outer-4g.c: Change loop bound.
diff --git a/gcc/testsuite/gcc.dg/parser-pr28152-2.c b/gcc/testsuite/gcc.dg/parser-pr28152-2.c
new file mode 100644
index 000000000000..18dc1e63dec9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/parser-pr28152-2.c
@@ -0,0 +1,11 @@
+/* PR 28152: error messages should mention __complex__ */
+/* { dg-do compile } */
+/* { dg-options "" } */
+int
+main (void)
+{
+  __complex__ float z;
+
+  z = __complex__ (1.90000007326203904e+19, 0.0);   /* { dg-error "__complex__" } */
+  z = __complex__ (1.0e+0, 0.0) / z;   /* { dg-error "__complex__" } */
+  /* { dg-error "at end of input" "" { target *-*-* } 10 } */
diff --git a/gcc/testsuite/gcc.dg/parser-pr28152.c b/gcc/testsuite/gcc.dg/parser-pr28152.c
new file mode 100644
index 000000000000..99534c10bfe5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/parser-pr28152.c
@@ -0,0 +1,11 @@
+/* PR 28152: error messages should mention _Complex */
+/* { dg-do compile } */
+/* { dg-options "" } */
+int
+main (void)
+{
+  _Complex float z;
+
+  z = _Complex (1.90000007326203904e+19, 0.0);   /* { dg-error "_Complex" } */
+  z = _Complex (1.0e+0, 0.0) / z;   /* { dg-error "_Complex" } */
+  /* { dg-error "at end of input" "" { target *-*-* } 10 } */
-- 
GitLab