aboutsummaryrefslogtreecommitdiff
path: root/gcc/go
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2011-02-10 21:46:20 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2011-02-10 21:46:20 +0000
commite372156c0528718f47249b181c46ad6f5440b341 (patch)
tree5d97ba32b51e4c5964f20fb818c78cbd1f214745 /gcc/go
parenta440316492e5356d08770dbac6c6b2da17aadf1b (diff)
downloadgcc-e372156c0528718f47249b181c46ad6f5440b341.zip
gcc-e372156c0528718f47249b181c46ad6f5440b341.tar.gz
gcc-e372156c0528718f47249b181c46ad6f5440b341.tar.bz2
Don't get confused when mixing different abstract types in binary expr.
From-SVN: r170023
Diffstat (limited to 'gcc/go')
-rw-r--r--gcc/go/gofrontend/expressions.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc
index d17b173..1089c6d 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -5536,6 +5536,9 @@ Binary_expression::do_determine_type(const Type_context* context)
subcontext.type = tright;
else
subcontext.type = tleft;
+
+ if (subcontext.type != NULL && !context->may_be_abstract)
+ subcontext.type = subcontext.type->make_non_abstract_type();
}
this->left_->determine_type(&subcontext);