aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/gofrontend/expressions.h
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2020-12-05 21:16:13 -0800
committerIan Lance Taylor <iant@golang.org>2020-12-08 10:22:12 -0800
commitf1b6e17b3f753980527721aa8e949d2481b2560b (patch)
tree1d9071fcfcbf9832e58b86f14812d4d017cdb654 /gcc/go/gofrontend/expressions.h
parentf41dd93ade24f22f8cd1863129ab20c821000134 (diff)
downloadgcc-f1b6e17b3f753980527721aa8e949d2481b2560b.zip
gcc-f1b6e17b3f753980527721aa8e949d2481b2560b.tar.gz
gcc-f1b6e17b3f753980527721aa8e949d2481b2560b.tar.bz2
compiler: use correct location for iota errors
Also check for valid array length when reducing len/cap to a constant. For golang/go#8183 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/275654
Diffstat (limited to 'gcc/go/gofrontend/expressions.h')
-rw-r--r--gcc/go/gofrontend/expressions.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/expressions.h b/gcc/go/gofrontend/expressions.h
index 259eeb6..712f687 100644
--- a/gcc/go/gofrontend/expressions.h
+++ b/gcc/go/gofrontend/expressions.h
@@ -549,6 +549,16 @@ class Expression
location() const
{ return this->location_; }
+ // Set the location of an expression and all its subexpressions.
+ // This is used for const declarations where the expression is
+ // copied from an earlier declaration.
+ void
+ set_location(Location loc);
+
+ // For set_location. This should really be a local class in
+ // Expression, but it needs types defined in gogo.h.
+ friend class Set_location;
+
// Return whether this is a constant expression.
bool
is_constant() const