This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Ada] yet another fix in handling of limited-with


Tested on i686-linux, committed on mainline.

In an context where both the limited and non-limited views of a package
are available, two references to the same type may correspond to its
non-limited and limited view. When checking conformance, always use the
non-limited view if available.
The following must compile without errors:
gcc -c -gnat05 -gnatc d.ads

package B is
   type B_Type is new Integer;
end;

limited with B;
package C is
   type C_Type is abstract tagged null record;
   procedure P (
     A_C : C_Type;
     A_B : access B.B_Type)
   is abstract;
end;

with B;
with C;
package D is
   type D_Type is new C.C_Type with null record;
   procedure P (
     A_D : D_Type;
     A_B : access B.B_Type);
end;

2005-07-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Conforming_Types): If the types are anonymous access
	types check whether some designated type is a limited view, and use
	the non-limited view if available.

Attachment: difs.18
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]