From: Robert Dewar Date: Wed, 26 Mar 2008 07:37:00 +0000 (+0100) Subject: checks.adb (Ensure_Valid): Capture valid status if possible (eliminate checks) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1c3340e65db79867d7aaf37ff4d1876bc01f604c;p=gcc.git checks.adb (Ensure_Valid): Capture valid status if possible (eliminate checks) 2008-03-26 Robert Dewar * checks.adb (Ensure_Valid): Capture valid status if possible (eliminate checks) From-SVN: r133553 --- diff --git a/gcc/ada/checks.adb b/gcc/ada/checks.adb index 0af10a6b1d6..d815a534a21 100644 --- a/gcc/ada/checks.adb +++ b/gcc/ada/checks.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2007, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2008, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -619,7 +619,7 @@ package body Checks is if Obj_Size /= No_Uint and then Exp_Size /= No_Uint and then Obj_Size > Exp_Size - and then not Warnings_Off (E) + and then not Has_Warnings_Off (E) then if Address_Clause_Overlay_Warnings then Error_Msg_FE @@ -3890,6 +3890,12 @@ package body Checks is -- If we fall through, a validity check is required Insert_Valid_Check (Expr); + + if Is_Entity_Name (Expr) + and then Safe_To_Capture_Value (Expr, Entity (Expr)) + then + Set_Is_Known_Valid (Entity (Expr)); + end if; end Ensure_Valid; ----------------------