mlib.adb: Minor reformatting

2009-04-22  Robert Dewar  <dewar@adacore.com>

	* mlib.adb: Minor reformatting

	* sem_aggr.adb: Minor reformatting. Defend against junk aggregate from
	syntax error.

From-SVN: r146562
This commit is contained in:
Robert Dewar 2009-04-22 10:36:37 +00:00 committed by Arnaud Charlet
parent 3b81743f89
commit 6d2a112099
3 changed files with 27 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2009-04-22 Robert Dewar <dewar@adacore.com>
* mlib.adb: Minor reformatting
* sem_aggr.adb: Minor reformatting. Defend against junk aggregate from
syntax error.
2009-04-22 Nicolas Setton <setton@adacore.com> 2009-04-22 Nicolas Setton <setton@adacore.com>
* link.c: Add flag __gnat_separate_run_path_options. * link.c: Add flag __gnat_separate_run_path_options.

View File

@ -450,7 +450,6 @@ package body MLib is
Separate_Paths : Boolean; Separate_Paths : Boolean;
for Separate_Paths'Size use Character'Size; for Separate_Paths'Size use Character'Size;
pragma Import (C, Separate_Paths, "__gnat_separate_run_path_options"); pragma Import (C, Separate_Paths, "__gnat_separate_run_path_options");
begin begin
return Separate_Paths; return Separate_Paths;
end Separate_Run_Path_Options; end Separate_Run_Path_Options;

View File

@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 1992-2008, Free Software Foundation, Inc. -- -- Copyright (C) 1992-2009, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
@ -896,6 +896,15 @@ package body Sem_Aggr is
-- which is the subtype of the context in which the aggregate was found. -- which is the subtype of the context in which the aggregate was found.
begin begin
-- Ignore junk empty aggregate resulting from parser error
if No (Expressions (N))
and then No (Component_Associations (N))
and then not Null_Record_Present (N)
then
return;
end if;
-- Check for aggregates not allowed in configurable run-time mode. -- Check for aggregates not allowed in configurable run-time mode.
-- We allow all cases of aggregates that do not come from source, -- We allow all cases of aggregates that do not come from source,
-- since these are all assumed to be small (e.g. bounds of a string -- since these are all assumed to be small (e.g. bounds of a string
@ -1504,6 +1513,15 @@ package body Sem_Aggr is
-- Start of processing for Resolve_Array_Aggregate -- Start of processing for Resolve_Array_Aggregate
begin begin
-- Ignore junk empty aggregate resulting from parser error
if No (Expressions (N))
and then No (Component_Associations (N))
and then not Null_Record_Present (N)
then
return False;
end if;
-- STEP 1: make sure the aggregate is correctly formatted -- STEP 1: make sure the aggregate is correctly formatted
if Present (Component_Associations (N)) then if Present (Component_Associations (N)) then
@ -2171,13 +2189,12 @@ package body Sem_Aggr is
then then
A_Type := Etype (Imm_Type); A_Type := Etype (Imm_Type);
return True; return True;
else else
Imm_Type := Etype (Base_Type (Imm_Type)); Imm_Type := Etype (Base_Type (Imm_Type));
end if; end if;
end loop; end loop;
-- If previous loop did not find a proper ancestor, report error. -- If previous loop did not find a proper ancestor, report error
Error_Msg_NE ("expect ancestor type of &", A, Typ); Error_Msg_NE ("expect ancestor type of &", A, Typ);
return False; return False;