/cp
2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58843
* typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
/testsuite
2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58843
* g++.dg/lookup/crash8.C: New.
From-SVN: r207305
+2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/58843
+ * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
+
2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58649
tree dtor_type = TREE_OPERAND (dtor_name, 0);
tree expr;
+ /* We've already complained about this destructor. */
+ if (dtor_type == error_mark_node)
+ return error_mark_node;
+
if (scope && !check_dtor_name (scope, dtor_type))
{
if (complain & tf_error)
+2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/58843
+ * g++.dg/lookup/crash8.C: New.
+
2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58649
--- /dev/null
+// PR c++/58843
+
+struct A {};
+
+template<typename T> void foo(T t)
+{
+ t.T::~X(); // { dg-error "no type" }
+}
+
+void bar()
+{
+ foo(A());
+}