skip asan-poisoning of discarded vars
authorAlexandre Oliva <oliva@adacore.com>
Tue, 26 Jan 2021 00:45:58 +0000 (21:45 -0300)
committerAlexandre Oliva <oliva@gnu.org>
Tue, 26 Jan 2021 00:45:58 +0000 (21:45 -0300)
commit667c8e33270e267c764202021c350ef2d5d861e7
tree9911d7823455842fe04e5055e45d1a7139e6e9f4
parent161e4c08624e2ff9f0db8f8c6ac201af6277b6aa
skip asan-poisoning of discarded vars

GNAT may create temporaries to hold return values of function calls.
If such a temporary is created as part of a dynamic initializer of a
variable in a unit other than the one being compiled, the initializer
is dropped, including the temporary and its binding block.

Don't issue asan mark calls for such variables, they are gone.

for  gcc/ChangeLog

* gimplify.c (gimplify_decl_expr): Skip asan marking calls for
temporaries not seen in binding block, and not about to be
added as gimple variables.

for  gcc/testsuite/ChangeLog

* gnat.dg/asan1.adb: New test.
* gnat.dg/asan1_pkg.ads: New additional source.
gcc/gimplify.c
gcc/testsuite/gnat.dg/asan1.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/asan1_pkg.ads [new file with mode: 0644]