From: Ian Lance Taylor Date: Tue, 4 Aug 2015 22:27:48 +0000 (+0000) Subject: compiler: Use context to determine types of complex expressions. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d69eea11a43b4ae992ecf0ce780f2f4143be72f8;p=gcc.git compiler: Use context to determine types of complex expressions. When determining the type of a complex expression, it is important to recognize cases where a complex value can be represented as a real number. Fixes golang/go#11572. Reviewed-on: https://go-review.googlesource.com/12541 From-SVN: r226596 --- diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index ed65dfd188b..70d19fb20e4 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -bdd98c601f2c8dbd0bf821548ba09c038f7645c4 +df080adb06f0e423820f3f6b9604b0c1093ff20a The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 976e34b3688..3aabbaba4c5 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -2396,7 +2396,7 @@ class Complex_expression : public Expression void do_dump_expression(Ast_dump_context*) const; - + private: // The complex value. mpc_t val_; @@ -2423,8 +2423,7 @@ Complex_expression::do_determine_type(const Type_context* context) { if (this->type_ != NULL && !this->type_->is_abstract()) ; - else if (context->type != NULL - && context->type->complex_type() != NULL) + else if (context->type != NULL && context->type->is_numeric_type()) this->type_ = context->type; else if (!context->may_be_abstract) this->type_ = Type::lookup_complex_type("complex128");