aboutsummaryrefslogtreecommitdiff
path: root/gcc/go
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2023-06-21 14:27:02 -0700
committerIan Lance Taylor <iant@golang.org>2023-06-21 17:52:47 -0700
commitcb760f66e0b29f09af5cfa0cd6aebc02aaaa0f7f (patch)
tree9e3da9854543e9ba5ac40aa6f876f1826299acfe /gcc/go
parent80e9ca0e36cc3ec1153c16764fa922875750c17a (diff)
downloadgcc-cb760f66e0b29f09af5cfa0cd6aebc02aaaa0f7f.zip
gcc-cb760f66e0b29f09af5cfa0cd6aebc02aaaa0f7f.tar.gz
gcc-cb760f66e0b29f09af5cfa0cd6aebc02aaaa0f7f.tar.bz2
compiler: determine types of Slice_{value,info} expressions
This fixes an accidental omission in the determine types pass. Test case is https://go.dev/cl/505015. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/504797
Diffstat (limited to 'gcc/go')
-rw-r--r--gcc/go/gofrontend/MERGE2
-rw-r--r--gcc/go/gofrontend/expressions.cc10
-rw-r--r--gcc/go/gofrontend/expressions.h5
3 files changed, 13 insertions, 4 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index dbb2d68..a028350 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -1,4 +1,4 @@
-6a1d165c2218cd127ee937a1f45599075762f716
+195060166e6045408a2cb95e6aa88c6f0b98f20b
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 4ac55af..2112de6 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -18307,6 +18307,16 @@ Slice_value_expression::do_traverse(Traverse* traverse)
return TRAVERSE_CONTINUE;
}
+// Determine type of a slice value.
+
+void
+Slice_value_expression::do_determine_type(const Type_context*)
+{
+ this->valmem_->determine_type_no_context();
+ this->len_->determine_type_no_context();
+ this->cap_->determine_type_no_context();
+}
+
Expression*
Slice_value_expression::do_copy()
{
diff --git a/gcc/go/gofrontend/expressions.h b/gcc/go/gofrontend/expressions.h
index 3d7e787..bdb7ccd 100644
--- a/gcc/go/gofrontend/expressions.h
+++ b/gcc/go/gofrontend/expressions.h
@@ -4364,8 +4364,7 @@ class Slice_value_expression : public Expression
{ return this->type_; }
void
- do_determine_type(const Type_context*)
- { }
+ do_determine_type(const Type_context*);
Expression*
do_copy();
@@ -4419,7 +4418,7 @@ class Slice_info_expression : public Expression
void
do_determine_type(const Type_context*)
- { }
+ { this->slice_->determine_type_no_context(); }
Expression*
do_copy()