aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_util.adb
diff options
context:
space:
mode:
authorEd Schonberg <schonberg@adacore.com>2008-07-30 17:52:58 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-07-30 17:52:58 +0200
commit6a4d72a6d9aec655e70fdbdf548c9ed00c0350db (patch)
tree73834d6791dd4a6ffb55a7f7466b9fa288ad731b /gcc/ada/exp_util.adb
parent706d74594af2a6d72b160ad214881ba75502ae82 (diff)
downloadgcc-6a4d72a6d9aec655e70fdbdf548c9ed00c0350db.zip
gcc-6a4d72a6d9aec655e70fdbdf548c9ed00c0350db.tar.gz
gcc-6a4d72a6d9aec655e70fdbdf548c9ed00c0350db.tar.bz2
sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute as a actual in an instance...
2008-07-30 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute as a actual in an instance, check for a missing attribute to prevent program_error on an illegal program. * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program error if primitive is not found, so that exception can be handled elsewhere on illegal programs. From-SVN: r138322
Diffstat (limited to 'gcc/ada/exp_util.adb')
-rw-r--r--gcc/ada/exp_util.adb10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb
index d41a6bc..e4b4389 100644
--- a/gcc/ada/exp_util.adb
+++ b/gcc/ada/exp_util.adb
@@ -1581,7 +1581,10 @@ package body Exp_Util is
or else Etype (First_Entity (Op)) = Etype (Last_Entity (Op)));
Next_Elmt (Prim);
- pragma Assert (Present (Prim));
+
+ if No (Prim) then
+ raise Program_Error;
+ end if;
end loop;
return Node (Prim);
@@ -1608,7 +1611,10 @@ package body Exp_Util is
Prim := First_Elmt (Primitive_Operations (Typ));
while not Is_TSS (Node (Prim), Name) loop
Next_Elmt (Prim);
- pragma Assert (Present (Prim));
+
+ if No (Prim) then
+ raise Program_Error;
+ end if;
end loop;
return Node (Prim);