diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2018-07-17 08:05:54 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2018-07-17 08:05:54 +0000 |
commit | 7abe752684b9afa6aa4bf4f293c9f2e13bd38835 (patch) | |
tree | ed9db58a0f1c67f74a74ff679f98177ab0a0e9c4 | |
parent | e92b81f2190f2273e5bb5c507a09f4580ae570df (diff) | |
download | gcc-7abe752684b9afa6aa4bf4f293c9f2e13bd38835.zip gcc-7abe752684b9afa6aa4bf4f293c9f2e13bd38835.tar.gz gcc-7abe752684b9afa6aa4bf4f293c9f2e13bd38835.tar.bz2 |
[Ada] Attach the special GNATprove HEAP entity to the Standard package
In GNATprove mode we use frontend cross-references to synthesize the
Global contract of subprograms with SPARK_Mode => Off and represent
a read/write via a pointer as a read/write of a special entity called
HEAP. This entity is now attached to the Standard package, so that we can
safely check the Ekind of its Scope, which now happens in Scope_Within.
This only affects GNATprove, so no frontend test provided.
2018-07-17 Piotr Trojanek <trojanek@adacore.com>
gcc/ada/
* lib-xref-spark_specific.adb (Create_Heap): Attach the HEAP entity to
the Standard package.
From-SVN: r262771
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/lib-xref-spark_specific.adb | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 5aff421..0e2d04e 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,10 @@ 2018-07-17 Piotr Trojanek <trojanek@adacore.com> + * lib-xref-spark_specific.adb (Create_Heap): Attach the HEAP entity to + the Standard package. + +2018-07-17 Piotr Trojanek <trojanek@adacore.com> + * einfo.adb (Is_Wrapper_Package): Remove extra parentheses. 2018-07-17 Ed Schonberg <schonberg@adacore.com> diff --git a/gcc/ada/lib-xref-spark_specific.adb b/gcc/ada/lib-xref-spark_specific.adb index 834ddc0..0ce834a 100644 --- a/gcc/ada/lib-xref-spark_specific.adb +++ b/gcc/ada/lib-xref-spark_specific.adb @@ -287,6 +287,7 @@ package body SPARK_Specific is Set_Ekind (Heap, E_Variable); Set_Is_Internal (Heap, True); + Set_Scope (Heap, Standard_Standard); Set_Has_Fully_Qualified_Name (Heap); end Create_Heap; |