1 Dec 2007 10:40
[PATCH] ada: Do not capture global variables from elaboration code
Samuel Tardieu <sam <at> rfc1149.net>
2007-12-01 09:40:33 GMT
2007-12-01 09:40:33 GMT
Prevent GNAT from capturing library-level global variables in elaboration
code since it is clearly unsafe and may lead to incorrect code generation.
Regtested and i686-pc-linux-gnu.
gcc/ada/
PR ada/34287
* sem_util.adb (Safe_To_Capture_Value): Do not capture values
of variables declared in a library-level package.
gcc/testsuite/gnat.dg/
PR ada/34287
* check_elaboration_code.adb: New test.
* bug_elaboration_code.ads, bug_elaboration_code.adb: New support
files.
---
gcc/ada/sem_util.adb | 11 +++++++++++
gcc/testsuite/gnat.dg/bug_elaboration_code.adb | 12 ++++++++++++
gcc/testsuite/gnat.dg/bug_elaboration_code.ads | 8 ++++++++
gcc/testsuite/gnat.dg/check_elaboration_code.adb | 9 +++++++++
4 files changed, 40 insertions(+), 0 deletions(-)
create mode 100644 gcc/testsuite/gnat.dg/bug_elaboration_code.adb
create mode 100644 gcc/testsuite/gnat.dg/bug_elaboration_code.ads
create mode 100644 gcc/testsuite/gnat.dg/check_elaboration_code.adb
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index a6c35d3..8dd4576 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
(Continue reading)
RSS Feed