par-ch4.adb (P_Name): When a bad attribute is returned...
authorRobert Dewar <dewar@adacore.com>
Tue, 29 Mar 2005 16:18:13 +0000 (18:18 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 29 Mar 2005 16:18:13 +0000 (18:18 +0200)
2005-03-29  Robert Dewar  <dewar@adacore.com>

* par-ch4.adb (P_Name): When a bad attribute is returned, return error,
rather than proceed ahead using a junk attribute name.

From-SVN: r97179

gcc/ada/par-ch4.adb

index 5826606352e889d5c2d34c1bce00eeddba7a705f..a013c23ae2a5b11601d89f6709229c873c445b04 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2005 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- --
@@ -402,8 +402,25 @@ package body Ch4 is
                   if Apostrophe_Should_Be_Semicolon then
                      Expr_Form := EF_Name;
                      return Name_Node;
+
+                  --  Here for a bad attribute name
+
                   else
                      Signal_Bad_Attribute;
+                     Scan; -- past bad identifier
+
+                     if Token = Tok_Left_Paren then
+                        Scan; -- past left paren
+
+                        loop
+                           Discard_Junk_Node (P_Expression);
+                           exit when not Comma_Present;
+                        end loop;
+
+                        T_Right_Paren;
+                     end if;
+
+                     return Error;
                   end if;
                end if;