/cp
2014-03-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60384
* name-lookup.c (push_class_level_binding_1): Check identifier_p
on the name argument.
/testsuite
2014-03-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60384
* g++.dg/cpp1y/pr60384.C: New.
From-SVN: r208752
+2014-03-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/60384
+ * name-lookup.c (push_class_level_binding_1): Check identifier_p
+ on the name argument.
+
2014-03-20 Jakub Jelinek <jakub@redhat.com>
PR c++/60572
if (name == error_mark_node)
return false;
+ /* Can happen for an erroneous declaration (c++/60384). */
+ if (!identifier_p (name))
+ {
+ gcc_assert (errorcount || sorrycount);
+ return false;
+ }
+
/* Check for invalid member names. But don't worry about a default
argument-scope lambda being pushed after the class is complete. */
gcc_assert (TYPE_BEING_DEFINED (current_class_type)
+2014-03-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/60384
+ * g++.dg/cpp1y/pr60384.C: New.
+
2014-03-21 Jakub Jelinek <jakub@redhat.com>
PR target/60598
--- /dev/null
+// PR c++/60384
+// { dg-do compile { target c++1y } }
+
+template<typename> int foo();
+
+struct A
+{
+ typedef auto foo<>(); // { dg-error "typedef declared 'auto'" }
+};