2008-05-27 Ed Schonberg <schonberg@adacore.com>
authorEd Schonberg <schonberg@adacore.com>
Tue, 27 May 2008 10:14:09 +0000 (12:14 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 27 May 2008 10:14:09 +0000 (12:14 +0200)
* sem_ch3.adb:
(Get_Discr_Value): Remove obsolete code that failed to find the value
of a discriminant for an inherited task component appearing in a type
extension.

From-SVN: r136001

gcc/ada/sem_ch3.adb

index de0806a1596b61ced3f826b01742579e2e71994b..a375eedee7c500ce266663070c11433b7bfaf431 100644 (file)
@@ -9850,7 +9850,6 @@ package body Sem_Ch3 is
       function Get_Discr_Value (Discrim : Entity_Id) return Node_Id is
          D : Entity_Id;
          E : Elmt_Id;
-         G : Elmt_Id;
 
       begin
          --  The discriminant may be declared for the type, in which case we
@@ -9880,14 +9879,15 @@ package body Sem_Ch3 is
          --  to one: one new discriminant can constrain several old ones. In
          --  that case, scan sequentially the stored_constraint, the list of
          --  discriminants of the parents, and the constraints.
+         --  Previous code checked for the present of the Stored_Constraint
+         --  list for the derived type, but did not use it at all. Should it
+         --  be present when the component is a discriminated task type?
 
          if Is_Derived_Type (Typ)
-           and then Present (Stored_Constraint (Typ))
            and then Scope (Entity (Discrim)) = Etype (Typ)
          then
             D := First_Discriminant (Etype (Typ));
             E := First_Elmt (Constraints);
-            G := First_Elmt (Stored_Constraint (Typ));
             while Present (D) loop
                if D = Entity (Discrim) then
                   return Node (E);
@@ -9895,7 +9895,6 @@ package body Sem_Ch3 is
 
                Next_Discriminant (D);
                Next_Elmt (E);
-               Next_Elmt (G);
             end loop;
          end if;