aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2020-11-16 15:02:47 -0500
committerPierre-Marie de Rodat <derodat@adacore.com>2020-12-14 10:51:50 -0500
commit2c40c60ecb32a2200c3a4087521b9f35cc08763e (patch)
treefe7ce31cb36639d8b2b892e03dcf991267ff3321
parentd983a9d0500d69d9eda24ac155d7d7c6fed628a2 (diff)
downloadgcc-2c40c60ecb32a2200c3a4087521b9f35cc08763e.zip
gcc-2c40c60ecb32a2200c3a4087521b9f35cc08763e.tar.gz
gcc-2c40c60ecb32a2200c3a4087521b9f35cc08763e.tar.bz2
[Ada] Compiler crash on call to function instance
gcc/ada/ * exp_ch6.adb (Is_Build_In_Place_Result_Type): Further narrow the conditions under which we enable build-in-place for controlled types.
-rw-r--r--gcc/ada/exp_ch6.adb1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb
index 98a1ceb..955049f 100644
--- a/gcc/ada/exp_ch6.adb
+++ b/gcc/ada/exp_ch6.adb
@@ -8091,6 +8091,7 @@ package body Exp_Ch6 is
if True then
Result := Is_Controlled (T)
+ and then not Is_Generic_Actual_Type (T)
and then Present (Enclosing_Subprogram (T))
and then not Is_Compilation_Unit (Enclosing_Subprogram (T))
and then Ekind (Enclosing_Subprogram (T)) = E_Procedure;