mlib.adb: Minor reformatting
authorRobert Dewar <dewar@adacore.com>
Wed, 22 Apr 2009 10:36:37 +0000 (10:36 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 22 Apr 2009 10:36:37 +0000 (12:36 +0200)
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

gcc/ada/ChangeLog
gcc/ada/mlib.adb
gcc/ada/sem_aggr.adb

index a70a712677a3f7f445e837dc9a12cbd9f250ec55..9c8c15d1fa598db73d84b63e0bc3faaad0bc76d2 100644 (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>
 
        * link.c: Add flag __gnat_separate_run_path_options.
index 22d24ab243d4b7be621ab15e0af2109bac62b084..6c1a4918340de222a085787a32749a01308df3f4 100644 (file)
@@ -450,7 +450,6 @@ package body MLib is
       Separate_Paths : Boolean;
       for Separate_Paths'Size use Character'Size;
       pragma Import (C, Separate_Paths, "__gnat_separate_run_path_options");
-
    begin
       return Separate_Paths;
    end Separate_Run_Path_Options;
index 2e7ba8ee63b2bc53d1a1467dac5aed644e86b095..22557b74ce80a9d1f22307a35bc0e616f3af9f09 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 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 --
 -- 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.
 
    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.
       --  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
@@ -1504,6 +1513,15 @@ package body Sem_Aggr is
    --  Start of processing for Resolve_Array_Aggregate
 
    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
 
       if Present (Component_Associations (N)) then
@@ -2171,13 +2189,12 @@ package body Sem_Aggr is
             then
                A_Type := Etype (Imm_Type);
                return True;
-
             else
                Imm_Type := Etype (Base_Type (Imm_Type));
             end if;
          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);
          return False;