diff options
author | Jason Merrill <jason@redhat.com> | 2011-05-25 15:52:02 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-05-25 15:52:02 -0400 |
commit | df23ba642d9f527ee32ed7342dd049de2461aaf0 (patch) | |
tree | 8fbd26557777529c5bc7c9aa9f5f3fb7700c2a22 /gcc | |
parent | ce9b1898e5516ed5cdc444f1c0de82de34939181 (diff) | |
download | gcc-df23ba642d9f527ee32ed7342dd049de2461aaf0.zip gcc-df23ba642d9f527ee32ed7342dd049de2461aaf0.tar.gz gcc-df23ba642d9f527ee32ed7342dd049de2461aaf0.tar.bz2 |
re PR c++/46005 ([C++0x] Don't allow "auto" as the simple-type-specifier of a typedef)
PR c++/46145
* decl.c (grokdeclarator): Complain about auto typedef.
From-SVN: r174228
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/decl.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/auto9.C | 3 |
4 files changed, 14 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d78f183..7493fd2 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2011-05-25 Jason Merrill <jason@redhat.com> + PR c++/46145 + * decl.c (grokdeclarator): Complain about auto typedef. + PR c++/46245 * decl.c (grokdeclarator): Complain later for auto parameter. * pt.c (splice_late_return_type): Handle use in a template diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 8000441..2b6a777 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -9481,6 +9481,12 @@ grokdeclarator (const cp_declarator *declarator, memfn_quals = TYPE_UNQUALIFIED; } + if (type_uses_auto (type)) + { + error ("typedef declared %<auto%>"); + type = error_mark_node; + } + if (decl_context == FIELD) decl = build_lang_decl (TYPE_DECL, unqualified_id, type); else diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3cc818a..7e88ecc8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,7 @@ 2011-05-25 Jason Merrill <jason@redhat.com> + * g++.dg/cpp0x/auto9.C: Add typedef test. + * g++.dg/cpp0x/auto23.C: New. * g++.dg/cpp0x/auto9.C: Adjust. diff --git a/gcc/testsuite/g++.dg/cpp0x/auto9.C b/gcc/testsuite/g++.dg/cpp0x/auto9.C index 142ef90..190bfa6 100644 --- a/gcc/testsuite/g++.dg/cpp0x/auto9.C +++ b/gcc/testsuite/g++.dg/cpp0x/auto9.C @@ -119,3 +119,6 @@ H<auto> h; // { dg-error "invalid" } void qq (auto); // { dg-error "auto" } void qr (auto*); // { dg-error "auto" } + +// PR c++/46145 +typedef auto autot; // { dg-error "auto" } |