diff options
author | Ian Lance Taylor <iant@golang.org> | 2021-05-22 19:19:13 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2021-05-24 13:24:45 -0700 |
commit | 358832c46a378e5a0b8a2fa3c2739125e3e680c7 (patch) | |
tree | 9217b12417ae68331c8efd66fd230414b12b98dd /gcc/go/gofrontend/statements.cc | |
parent | 2c43f5ec9db163696de8691eb529df06c4999bcc (diff) | |
download | gcc-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.cc | 6 |
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; } |