OSDN Git Service

* sem_type.adb (Add_One_Interp): an operator for a type declared in
authorbosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Oct 2001 00:35:43 +0000 (00:35 +0000)
committerbosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Oct 2001 00:35:43 +0000 (00:35 +0000)
an extension of System is known to be visible.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46217 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/sem_type.adb

index 2ab878c..bf43959 100644 (file)
@@ -1,5 +1,10 @@
 2001-10-11  Ed Schonberg <schonber@gnat.com>
 
+       * sem_type.adb (Add_One_Interp): an operator for a type declared in 
+       an extension of System is known to be visible.
+
+2001-10-11  Ed Schonberg <schonber@gnat.com>
+
        * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal 
        properly. Fixes regression on ACATS C34005G.
 
index 9c335e6..afb347d 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---                            $Revision: 1.198 $
+--                            $Revision$
 --                                                                          --
 --          Copyright (C) 1992-2001 Free Software Foundation, Inc.          --
 --                                                                          --
@@ -286,12 +286,15 @@ package body Sem_Type is
 
          --  If the node is given in functional notation and the prefix
          --  is an expanded name, then the operator is visible if the
-         --  prefix is the scope of the result type as well.
+         --  prefix is the scope of the result type as well. If the
+         --  operator is (implicitly) defined in an extension of system,
+         --  it is know to be valid (see Defined_In_Scope, sem_ch4.adb).
 
          elsif Nkind (N) = N_Function_Call
            and then Nkind (Name (N)) = N_Expanded_Name
            and then (Entity (Prefix (Name (N))) = Scope (Base_Type (T))
-                      or else Entity (Prefix (Name (N))) = Scope (Vis_Type))
+                      or else Entity (Prefix (Name (N))) = Scope (Vis_Type)
+                      or else Scope (Vis_Type) = System_Aux_Id)
          then
             null;