Hello, I have following output from the compiler for attached testcase: gcc -c items.adb -gnat05 items.adb:11:21: expected type "System.Finalization_Implementation.Limited_Record_Controller" items.adb:11:21: found type "System.Finalization_Implementation.Record_Controller" This strange diagnosis seems as result of accept illegal program by the compiler. Type Item is a non-limited type with component of type with limited public and non-limited private view, so Item also must be a limited type.
Created attachment 14649 [details] testcase
Confirmed on trunk. GNAT 4.3.0 20071203 (experimental) Copyright 1992-2007, Free Software Foundation, Inc. Compiling: items.adb (source file time stamp: 2007-12-04 14:40:16) 11. := new Item'(Kind => ASIS_Context, others => <>) | >>> expected type "System.Finalization_Implementation.Limited_Record_Controller" >>> found type "System.Finalization_Implementation.Record_Controller" 17 lines: 2 errors
This appears to have been fixed in GCC 4.3.1.