diff options
author | Dodji Seketeli <dodji@redhat.com> | 2011-11-09 08:00:58 +0000 |
---|---|---|
committer | Dodji Seketeli <dodji@gcc.gnu.org> | 2011-11-09 09:00:58 +0100 |
commit | bd0424fa93a378febead635136ad219f9d34b2b7 (patch) | |
tree | b383aaeeb1c561448687abde05efb6e54f000de6 /gcc | |
parent | c2b32b0fd4ae32ae049e166d03ba7678aa07ddab (diff) | |
download | gcc-bd0424fa93a378febead635136ad219f9d34b2b7.zip gcc-bd0424fa93a378febead635136ad219f9d34b2b7.tar.gz gcc-bd0424fa93a378febead635136ad219f9d34b2b7.tar.bz2 |
PR c++/51027 - accepts alias-declaration without ';'
gcc/cp/
* parser.c (cp_parser_alias_declaration): Require ';' at the end
of the declaration.
libstdc++-v3/
* include/ext/pointer.h (rebind): Append missing ';'.
gcc/testsuite
* g++.dg/cpp0x/alias-decl-12.C: New test.
* g++.dg/ext/alias-decl-attr4.C: Append missing ';'.
From-SVN: r181195
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/parser.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/alias-decl-12.C | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ext/alias-decl-attr4.C | 2 |
5 files changed, 18 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 6445bef..f7f91d2 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,11 @@ 2011-11-09 Dodji Seketeli <dodji@redhat.com> + PR c++/51027 + * parser.c (cp_parser_alias_declaration): Require ';' at the end + of the declaration. + +2011-11-09 Dodji Seketeli <dodji@redhat.com> + PR debug/51032 * decl2.c (check_member_template): Accept alias templates and ... * parser.c (cp_parser_alias_declaration): ... use it here. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index fde4c6d..1376a3a 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -14942,6 +14942,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/ChangeLog b/gcc/testsuite/ChangeLog index 4abcf07..7b59aeb 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2011-11-09 Dodji Seketeli <dodji@redhat.com> + PR c++/51027 + * g++.dg/cpp0x/alias-decl-12.C: New test. + * g++.dg/ext/alias-decl-attr4.C: Append missing ';'. + +2011-11-09 Dodji Seketeli <dodji@redhat.com> + PR debug/51032 * g++.dg/cpp0x/alias-decl-debug-0.C: New test. 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..11c2686 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-12.C @@ -0,0 +1,4 @@ +// Origin: PR c++/51027 +// { dg-options "-std=c++0x" } + +using INT = int // { dg-error "expected|;|at end of input" } diff --git a/gcc/testsuite/g++.dg/ext/alias-decl-attr4.C b/gcc/testsuite/g++.dg/ext/alias-decl-attr4.C index c4dd048..3e1c1c4 100644 --- a/gcc/testsuite/g++.dg/ext/alias-decl-attr4.C +++ b/gcc/testsuite/g++.dg/ext/alias-decl-attr4.C @@ -11,7 +11,7 @@ template <class T> struct A template < typename Val > struct S { using vector_type __attribute__((vector_size(16))) = - typename A<Val>::type + typename A<Val>::type; typedef Val vector_type2 __attribute__((vector_size(16))); int pr_size() { return sizeof(vector_type); } int pr_size2() { return sizeof(vector_type2); } |