aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2020-03-14 14:32:31 -0400
committerPierre-Marie de Rodat <derodat@adacore.com>2020-06-11 05:53:36 -0400
commit0dd9f1b83fd8349556b5397002e505a873b866aa (patch)
tree7fc48a3cc84a5de12653890ca40b6532520793f7
parenta91b983325449c68f2f497a1662a4b85c47ce1a9 (diff)
downloadgcc-0dd9f1b83fd8349556b5397002e505a873b866aa.zip
gcc-0dd9f1b83fd8349556b5397002e505a873b866aa.tar.gz
gcc-0dd9f1b83fd8349556b5397002e505a873b866aa.tar.bz2
[Ada] Fix unnesting crash with Predicate_Failure/no pred
2020-06-11 Bob Duff <duff@adacore.com> gcc/ada/ * sem_ch13.adb (Analyze_Aspect_Specifications): Do not set the Has_Predicates flag when the Predicate_Failure aspect is seen. It is legal (but pointless) to use this aspect without a predicate. If we set the flag, we generate a half-baked Predicate procedure, and if that procedure is nested, it causes unnesting to crash.
-rw-r--r--gcc/ada/sem_ch13.adb2
1 files changed, 0 insertions, 2 deletions
diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb
index cb33439..f73b55a 100644
--- a/gcc/ada/sem_ch13.adb
+++ b/gcc/ada/sem_ch13.adb
@@ -2540,8 +2540,6 @@ package body Sem_Ch13 is
Expression => Relocate_Node (Expr))),
Pragma_Name => Name_Predicate_Failure);
- Set_Has_Predicates (E);
-
-- If the type is private, indicate that its completion
-- has a freeze node, because that is the one that will
-- be visible at freeze time.