Commit 63db260e by Robert Dewar Committed by Geert Bosch

exp_util.adb: Minor reformatting from last change

	* exp_util.adb: Minor reformatting from last change

	* errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
	which is a rewriting of an expression, traverse the original
	expression to remove warnings that may have been posted on it.

From-SVN: r47639
parent c6d289f4
2001-12-04 Robert Dewar <dewar@gnat.com>
* exp_util.adb: Minor reformatting from last change
* errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
which is a rewriting of an expression, traverse the original
expression to remove warnings that may have been posted on it.
2001-12-04 Ed Schonberg <schonber@gnat.com>
* exp_util.adb (Must_Be_Aligned): Return false for a component of a
......
......@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- $Revision: 1.208 $
-- $Revision$
-- --
-- Copyright (C) 1992-2001 Free Software Foundation, Inc. --
-- --
......@@ -1981,7 +1981,30 @@ package body Errout is
E := Errors.Table (E).Next;
end loop;
return OK;
if Nkind (N) = N_Raise_Constraint_Error
and then Original_Node (N) /= N
then
-- Warnings may have been posted on subexpressions of
-- the original tree. We temporarily replace the raise
-- statement with the original expression to remove
-- those warnings, whose sloc do not match those of
-- any node in the current tree.
declare
Old : Node_Id := N;
Status : Traverse_Result;
begin
Rewrite (N, Original_Node (N));
Status := Check_For_Warning (N);
Rewrite (N, Old);
return Status;
end;
else
return OK;
end if;
end Check_For_Warning;
-- Start of processing for Remove_Warning_Messages
......
......@@ -2503,9 +2503,14 @@ package body Exp_Util is
-- choose to pack the rest of the record. Lead to less efficient code,
-- but safer vis-a-vis of back-end choices.
-----------------------------
-- Partially_Packed_Record --
-----------------------------
function In_Partially_Packed_Record (Comp : Entity_Id) return Boolean is
Rec_Type : constant Entity_Id := Scope (Comp);
Rec_Type : constant Entity_Id := Scope (Comp);
Prev_Comp : Entity_Id;
begin
Prev_Comp := First_Entity (Rec_Type);
while Present (Prev_Comp) loop
......@@ -2521,6 +2526,9 @@ package body Exp_Util is
return False;
end In_Partially_Packed_Record;
-- Start of processing for Must_Be_Aligned
begin
-- If object is strictly aligned, we can quit now
......
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