aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2018-07-17 08:05:54 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-07-17 08:05:54 +0000
commit7abe752684b9afa6aa4bf4f293c9f2e13bd38835 (patch)
treeed9db58a0f1c67f74a74ff679f98177ab0a0e9c4
parente92b81f2190f2273e5bb5c507a09f4580ae570df (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/ada/lib-xref-spark_specific.adb1
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;