Patchwork PR c++/51027 - accepts alias-declaration without ';'

login
register
mail settings
Submitter Dodji Seketeli
Date Nov. 8, 2011, 9:18 p.m.
Message ID <m3bosmia87.fsf@redhat.com>
Download mbox | patch
Permalink /patch/124433/
State New
Headers show

Comments

Dodji Seketeli - Nov. 8, 2011, 9:18 p.m.
Hello,

G++ is accepting alias-declaration missing semicolon at the end.
Oops.  Fixed thus.

I had to update some tests and library files that were missing the
semicolon at the end as well.

A bootstrap + test is currently underway on x86_64-unknown-linux-gnu
against trunk.

From: Dodji Seketeli <dodji@redhat.com>
Date: Tue, 8 Nov 2011 17:21:52 +0100
Subject: [PATCH] PR c++/51027 - accepts alias-declaration without ';'

gcc/cp/

	* parser.c (cp_parser_alias_declaration): Require ';' at the end
	of declaration.

gcc/testsuite

	* g++.dg/cpp0x/alias-decl-12.C: New test.
---
 gcc/cp/parser.c                            |    1 +
 gcc/testsuite/g++.dg/cpp0x/alias-decl-12.C |    3 +++
 2 files changed, 4 insertions(+), 0 deletions(-)
 create mode 100644 gcc/testsuite/g++.dg/cpp0x/alias-decl-12.C

Patch

diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 3d35877..0f2b14b 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -14904,6 +14904,7 @@  cp_parser_alias_declaration (cp_parser* parser)
   cp_parser_require (parser, CPP_EQ, RT_EQ);
 
   type = cp_parser_type_id (parser);
+  cp_parser_require (parser, CPP_SEMICOLON, RT_SEMICOLON);
 
   /* A typedef-name can also be introduced by an alias-declaration. The
      identifier following the using keyword becomes a typedef-name. It has
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-12.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-12.C
new file mode 100644
index 0000000..a8c7260
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-12.C
@@ -0,0 +1,3 @@ 
+// { dg-options "-std=c++0x" }
+
+using INT = int // { dg-error "expected|;|at end of input" }