From 6a4d72a6d9aec655e70fdbdf548c9ed00c0350db Mon Sep 17 00:00:00 2001 From: Ed Schonberg Date: Wed, 30 Jul 2008 17:52:58 +0200 Subject: sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute as a actual in an instance... 2008-07-30 Ed Schonberg * 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 --- gcc/ada/exp_util.adb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'gcc/ada/exp_util.adb') 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); -- cgit v1.1