compiler: always use int context for index values
For golang/go#14844
Change-Id: Idf1eaf2095d404b01fcfa189453e30195834c266
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273889
Trust: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
diff --git a/go/expressions.cc b/go/expressions.cc
index dc7399e..d154630 100644
--- a/go/expressions.cc
+++ b/go/expressions.cc
@@ -12802,24 +12802,11 @@
this->array_->determine_type_no_context();
Type_context index_context(Type::lookup_integer_type("int"), false);
- if (this->start_->is_constant())
- this->start_->determine_type(&index_context);
- else
- this->start_->determine_type_no_context();
+ this->start_->determine_type(&index_context);
if (this->end_ != NULL)
- {
- if (this->end_->is_constant())
- this->end_->determine_type(&index_context);
- else
- this->end_->determine_type_no_context();
- }
+ this->end_->determine_type(&index_context);
if (this->cap_ != NULL)
- {
- if (this->cap_->is_constant())
- this->cap_->determine_type(&index_context);
- else
- this->cap_->determine_type_no_context();
- }
+ this->cap_->determine_type(&index_context);
}
// Check types of an array index.
@@ -13488,17 +13475,9 @@
this->string_->determine_type_no_context();
Type_context index_context(Type::lookup_integer_type("int"), false);
- if (this->start_->is_constant())
- this->start_->determine_type(&index_context);
- else
- this->start_->determine_type_no_context();
+ this->start_->determine_type(&index_context);
if (this->end_ != NULL)
- {
- if (this->end_->is_constant())
- this->end_->determine_type(&index_context);
- else
- this->end_->determine_type_no_context();
- }
+ this->end_->determine_type(&index_context);
}
// Check types of a string index.