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 -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