Commit 4fa964a6 by Robert Dewar Committed by Geert Bosch

sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null loop in generic instance...

	* sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
	loop in generic instance, since this is likely not very useful.

From-SVN: r46215
parent 0868e09c
2001-10-11 Robert Dewar <dewar@gnat.com> 2001-10-11 Robert Dewar <dewar@gnat.com>
* sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
loop in generic instance, since this is likely not very useful.
2001-10-11 Robert Dewar <dewar@gnat.com>
* restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
the error message for high integrity mode. the error message for high integrity mode.
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- $Revision: 1.262 $ -- $Revision$
-- -- -- --
-- Copyright (C) 1992-2001 Free Software Foundation, Inc. -- -- Copyright (C) 1992-2001 Free Software Foundation, Inc. --
-- -- -- --
...@@ -941,11 +941,15 @@ package body Sem_Ch5 is ...@@ -941,11 +941,15 @@ package body Sem_Ch5 is
F := Freeze_Entity (Id, Sloc (LP)); F := Freeze_Entity (Id, Sloc (LP));
pragma Assert (F = No_List); pragma Assert (F = No_List);
-- Check for null or possibly null range and issue warning -- Check for null or possibly null range and issue warning.
-- We suppress such messages in generic templates and
-- instances, because in practice they tend to be dubious
-- in these cases.
if Nkind (DS) = N_Range if Nkind (DS) = N_Range
and then Comes_From_Source (N) and then Comes_From_Source (N)
and then not Inside_A_Generic and then not Inside_A_Generic
and then not In_Instance
then then
declare declare
L : constant Node_Id := Low_Bound (DS); L : constant Node_Id := Low_Bound (DS);
...@@ -965,11 +969,9 @@ package body Sem_Ch5 is ...@@ -965,11 +969,9 @@ package body Sem_Ch5 is
-- If range of loop is null, issue warning -- If range of loop is null, issue warning
if (LOK and HOK) and then Llo > Hhi then if (LOK and HOK) and then Llo > Hhi then
Warn_On_Instance := True;
Error_Msg_N Error_Msg_N
("?loop range is null, loop will not execute", ("?loop range is null, loop will not execute",
DS); DS);
Warn_On_Instance := False;
-- The other case for a warning is a reverse loop -- The other case for a warning is a reverse loop
-- where the upper bound is the integer literal -- where the upper bound is the integer literal
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment