aboutsummaryrefslogtreecommitdiff
path: root/gcc/go
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2022-10-09 12:52:17 -0700
committerIan Lance Taylor <iant@golang.org>2022-10-10 14:45:57 -0700
commit29b0fe393859729215b0db5d28f2faea30c6ec32 (patch)
tree8cc81ccaddcbfced1d66d5e886eef9c443a95c59 /gcc/go
parent0f6efd34c21ab6452aa846fd7e59acbccf15fbef (diff)
downloadgcc-29b0fe393859729215b0db5d28f2faea30c6ec32.zip
gcc-29b0fe393859729215b0db5d28f2faea30c6ec32.tar.gz
gcc-29b0fe393859729215b0db5d28f2faea30c6ec32.tar.bz2
compiler: treat S("") as a string constant
The compiler neglected to notice that a conversion from a string constant to a string type was a valid string constant. No test case because this only caused a compiler failure when compiling without optimization, which is not the normal case, and is not a case that we test. Fixes golang/go#56113 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/441555
Diffstat (limited to 'gcc/go')
-rw-r--r--gcc/go/gofrontend/MERGE2
-rw-r--r--gcc/go/gofrontend/expressions.cc3
2 files changed, 4 insertions, 1 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index 1c24660..5b95b38 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -1,4 +1,4 @@
-164f2aeb1deec4c11e55b8bfb152ff7ff4c1dd4c
+6c188108858e3ae8c8ea8e4cc55427d8cf01bbc8
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 247ae1b..71838b1 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -4092,6 +4092,9 @@ Type_conversion_expression::do_numeric_constant_value(
bool
Type_conversion_expression::do_string_constant_value(std::string* val) const
{
+ if (this->type_->is_string_type() && this->expr_->type()->is_string_type())
+ return this->expr_->string_constant_value(val);
+
if (this->type_->is_string_type()
&& this->expr_->type()->integer_type() != NULL)
{