This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH][C++] Fix PR52841


We are using the following patch from Fabien in our tree to fix
a rejects-valid bug quite appearant in our own codebase.

Re-bootstrap and regtest on the branch head currently running,
ok if that succeeds?

Thanks,
Richard.

2012-06-04  Fabien Chêne  <fabien@gcc.gnu.org>

	PR c++/52841
	* parser.c (cp_parser_alias_declaration): Return earlier
	if an error occured.

	* g++.dg/cpp0x/pr52841.C: New testcase.

Index: gcc/cp/parser.c
===================================================================
--- gcc/cp/parser.c	(revision 186200)
+++ gcc/cp/parser.c	(working copy)
@@ -15072,6 +15072,9 @@ cp_parser_alias_declaration (cp_parser*
 
   cp_parser_require (parser, CPP_EQ, RT_EQ);
 
+  if (cp_parser_error_occurred (parser))
+    return error_mark_node;
+
   /* Now we are going to parse the type-id of the declaration.  */
 
   /*
Index: gcc/testsuite/g++.dg/cpp0x/pr52841.C
===================================================================
--- gcc/testsuite/g++.dg/cpp0x/pr52841.C	(revision 0)
+++ gcc/testsuite/g++.dg/cpp0x/pr52841.C	(revision 0)
@@ -0,0 +1,17 @@
+// { dg-do compile }
+
+struct Solvable;
+namespace sat
+{
+  class Solvable
+    {
+  public:
+      typedef bool bool_type;
+    };
+}
+
+class Resolvable : public sat::Solvable
+{
+public:
+  using sat::Solvable::bool_type;
+};

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]