diff mbox

Go patch committed: Traverse type in a type descriptor expression

Message ID CAOyqgcU2W+oD+F_uCzccCjcwKhmUzauMm47WbL=NtSs-684GsQ@mail.gmail.com
State New
Headers show

Commit Message

Ian Lance Taylor Dec. 14, 2014, 12:55 a.m. UTC
Due to an oversight, traversing a type descriptor expression in the Go
frontend failed to traverse the type.  This caused GCC PR 61244.  This
patch from Chris Manghane fixes the problem.  Bootstrapped and ran Go
testsuite on x86_64-unknown-linux-gnu.  Committed to mainline.

Ian
diff mbox

Patch

diff -r 08fdb81ed1ec go/expressions.cc
--- a/go/expressions.cc	Fri Dec 12 17:57:44 2014 -0800
+++ b/go/expressions.cc	Sat Dec 13 16:52:12 2014 -0800
@@ -13657,6 +13657,9 @@ 
   { }
 
  protected:
+  int
+  do_traverse(Traverse*);
+
   Type*
   do_type()
   { return Type::make_type_descriptor_ptr_type(); }
@@ -13688,6 +13691,14 @@ 
   Type* type_;
 };
 
+int
+Type_descriptor_expression::do_traverse(Traverse* traverse)
+{
+  if (Type::traverse(this->type_, traverse) == TRAVERSE_EXIT)
+    return TRAVERSE_EXIT;
+  return TRAVERSE_CONTINUE;
+}
+
 // Dump ast representation for a type descriptor expression.
 
 void