From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2116) id C55433858D35; Thu, 22 Jun 2023 00:53:01 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C55433858D35 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1687395181; bh=DnCcN8BJGguVkCWNGc36U+/tsNvrbtEqqn/BWTHo4yU=; h=From:To:Subject:Date:From; b=oY3ivn6UP55lfYOpp9KhHN4oOQYPnEoCdW3ur0Doq6vPT67TXlXdhbphTomgtVsDV 2Rrh5Id1p7F6NH/WrgQUjlVMKznKYxMJyMsDUyn4Sy7VhzMAj826u2ZX+pH7awO15y Tiu8pQWYeLgNbU+O01aTSPtEkhi3e88tmwSv8Sq0= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Ian Lance Taylor To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-2026] compiler: determine types of Slice_{value, info} expressions X-Act-Checkin: gcc X-Git-Author: Ian Lance Taylor X-Git-Refname: refs/heads/master X-Git-Oldrev: 80e9ca0e36cc3ec1153c16764fa922875750c17a X-Git-Newrev: cb760f66e0b29f09af5cfa0cd6aebc02aaaa0f7f Message-Id: <20230622005301.C55433858D35@sourceware.org> Date: Thu, 22 Jun 2023 00:53:01 +0000 (GMT) List-Id: https://gcc.gnu.org/g:cb760f66e0b29f09af5cfa0cd6aebc02aaaa0f7f commit r14-2026-gcb760f66e0b29f09af5cfa0cd6aebc02aaaa0f7f Author: Ian Lance Taylor Date: Wed Jun 21 14:27:02 2023 -0700 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 Diff: --- gcc/go/gofrontend/MERGE | 2 +- gcc/go/gofrontend/expressions.cc | 10 ++++++++++ gcc/go/gofrontend/expressions.h | 5 ++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index dbb2d68f909..a028350ba8e 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 4ac55af7433..2112de6abfc 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 3d7e78711bd..bdb7ccd010d 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()