This patch to the Go frontend adds the missing Slice_info_expression::do_traverse method. Lack of the method caused https://go.dev/issue/59169. The test case is https://go.dev/cl/478217. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline and GCC 12 branch.
Ian
187edaf5e88b548db4e6790b723be1f8d1dab2d5 diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 4a1a4c8c021..8c8025dec2e 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -8c786f716c58d7973623c2b9293e2ad360877817 +9ffd6e679ff0e3a908d0ec2ed5c6efa1de827c3f 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.h b/gcc/go/gofrontend/expressions.h index a1e3733aa1d..3d7e78711bd 100644 --- a/gcc/go/gofrontend/expressions.h +++ b/gcc/go/gofrontend/expressions.h @@ -4410,6 +4410,10 @@ class Slice_info_expression : public Expression { return this->slice_info_; } protected: + int + do_traverse(Traverse* traverse) + { return Expression::traverse(&this->slice_, traverse); } + Type* do_type();