aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/ChangeLog
diff options
context:
space:
mode:
authorHristian Kirtchev <kirtchev@adacore.com>2018-05-24 13:04:24 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-05-24 13:04:24 +0000
commit7dcac7d1468a3b5b69f5a04d2ca0919b515fddba (patch)
treec89008dcaf0bbb3973a888a86bc8f877ba4baf12 /gcc/ada/ChangeLog
parent443ee9566b50a59f4e1a057ffdda8fba4002dde3 (diff)
downloadgcc-7dcac7d1468a3b5b69f5a04d2ca0919b515fddba.zip
gcc-7dcac7d1468a3b5b69f5a04d2ca0919b515fddba.tar.gz
gcc-7dcac7d1468a3b5b69f5a04d2ca0919b515fddba.tar.bz2
[Ada] Crash on compilation unit instance
Do not generate a variable marker for a reference which appears within the formal part of an instantiation which acts as a compilation unit because there is no suitable insertion context. ------------ -- Source -- ------------ -- gnat.adc pragma SPARK_Mode (On); -- gen.ads generic Val_1 : Integer; Val_2 : Integer; package Gen is end Gen; -- pack.ads package Pack is Val : Integer := 123; function Get_Val return Integer; end Pack; -- inst.ads with Gen; with Pack; use Pack; package Inst is new Gen (Val, Get_Val); -- proc.adb with Pack; use Pack; procedure Proc (Val_1 : Integer := Val; Val_2 : Integer := Get_Val) is begin null; end Proc; ----------------- -- Compilation -- ----------------- $ gcc -c inst.ads $ gcc -c inst.ads -gnatd.F $ gcc -c proc.adb $ gcc -c proc.adb -gnatd.F 2018-05-24 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * sem_elab.adb (Build_Variable_Reference_Marker): Do not create a variable marker when the reference appears in the formal part of a compilation unit instance because there is no place to insert it. (In_Compilation_Instance_Formal_Part): New routine. From-SVN: r260643
Diffstat (limited to 'gcc/ada/ChangeLog')
-rw-r--r--gcc/ada/ChangeLog7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index c6ff690..8d4b0fc 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2018-05-24 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_elab.adb (Build_Variable_Reference_Marker): Do not create a
+ variable marker when the reference appears in the formal part of a
+ compilation unit instance because there is no place to insert it.
+ (In_Compilation_Instance_Formal_Part): New routine.
+
2018-05-24 Piotr Trojanek <trojanek@adacore.com>
* layout.ads, repinfo.ads: Fix references to renamed Backend_Layout