aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/gofrontend/statements.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2021-05-22 19:19:13 -0700
committerIan Lance Taylor <iant@golang.org>2021-05-24 13:24:45 -0700
commit358832c46a378e5a0b8a2fa3c2739125e3e680c7 (patch)
tree9217b12417ae68331c8efd66fd230414b12b98dd /gcc/go/gofrontend/statements.cc
parent2c43f5ec9db163696de8691eb529df06c4999bcc (diff)
downloadgcc-358832c46a378e5a0b8a2fa3c2739125e3e680c7.zip
gcc-358832c46a378e5a0b8a2fa3c2739125e3e680c7.tar.gz
gcc-358832c46a378e5a0b8a2fa3c2739125e3e680c7.tar.bz2
compiler: mark global variables whose address is taken
To implement this, change the backend to use flag bits for variables. Fixes https://gcc.gnu.org/PR100537 PR go/100537 * go-gcc.cc (class Gcc_backend): Update methods that create variables to take a flags parameter. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/322129
Diffstat (limited to 'gcc/go/gofrontend/statements.cc')
-rw-r--r--gcc/go/gofrontend/statements.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/go/gofrontend/statements.cc b/gcc/go/gofrontend/statements.cc
index b066011..9643d1b 100644
--- a/gcc/go/gofrontend/statements.cc
+++ b/gcc/go/gofrontend/statements.cc
@@ -643,11 +643,13 @@ Temporary_statement::do_get_backend(Translate_context* context)
binit = context->backend()->convert_expression(btype, binit,
this->location());
+ unsigned int flags = 0;
+ if (this->is_address_taken_)
+ flags |= Backend::variable_address_is_taken;
Bstatement* statement;
this->bvariable_ =
context->backend()->temporary_variable(bfunction, context->bblock(),
- btype, binit,
- this->is_address_taken_,
+ btype, binit, flags,
this->location(), &statement);
return statement;
}