aboutsummaryrefslogtreecommitdiff
path: root/gcc/go
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2014-12-14 00:55:01 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2014-12-14 00:55:01 +0000
commit761bd3334833d7b5d53fb6b233bd767237f1c1b6 (patch)
treea73b9f44d4dd8eb0e8bd52f1631a13f2cba1c204 /gcc/go
parent7b814b1aa5363283a252d524b188500b0ad60dae (diff)
downloadgcc-761bd3334833d7b5d53fb6b233bd767237f1c1b6.zip
gcc-761bd3334833d7b5d53fb6b233bd767237f1c1b6.tar.gz
gcc-761bd3334833d7b5d53fb6b233bd767237f1c1b6.tar.bz2
re PR go/61244 (gccgo: ICE in write_specific_type_functions [GoSmith])
PR go/61244 compiler: Traverse type descriptor expressions. From-SVN: r218715
Diffstat (limited to 'gcc/go')
-rw-r--r--gcc/go/gofrontend/expressions.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc
index 4d07c22..21f6cd6 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -13657,6 +13657,9 @@ class Type_descriptor_expression : public Expression
{ }
protected:
+ int
+ do_traverse(Traverse*);
+
Type*
do_type()
{ return Type::make_type_descriptor_ptr_type(); }
@@ -13688,6 +13691,14 @@ class Type_descriptor_expression : public Expression
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