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] fix crash on self-referential access-to-class-wide


If a record type T contains "access T'Class", and there is
a preceding untagged private type T, the compiler would crash,
because the class-wide type for T did not exist at the time
that T'Class was processed. This fix creates the class-wide
type early enough.

See gnat.dg/specs/self_class.ads

Tested on i686-pc-linux-gnu, committed on trunk

2008-05-27  Bob Duff  <duff@adacore.com>

	* sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
	untagged private type with a tagged full type, where the full type has
	a self reference, create the corresponding class-wide type early, in
	case the self reference is "access T'Class".

Attachment: difs
Description: Text document


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