2008-07-31 Gary Dismukes <dismukes@adacore.com>

* sem_aggr.adb:
	(Resolve_Record_Aggregate): Bypass error that a type without
	components must have a "null record" aggregate when compiling for Ada
	2005, since it's legal to give an aggregate of form (others => <>)
	for such a type.

From-SVN: r138412
This commit is contained in:
Gary Dismukes 2008-07-31 15:53:55 +02:00 committed by Arnaud Charlet
parent 2653cbda9e
commit eff332d9a5

View file

@ -2770,7 +2770,17 @@ package body Sem_Aggr is
Error_Msg_N ("record aggregate cannot be null", N);
return;
elsif No (First_Entity (Typ)) then
-- If the type has no components, then the aggregate should either
-- have "null record", or in Ada 2005 it could instead have a single
-- component association given by "others => <>". For Ada 95 we flag
-- an error at this point, but for Ada 2005 we proceed with checking
-- the associations below, which will catch the case where it's not
-- an aggregate with "others => <>". Note that the legality of a <>
-- aggregate for a null record type was established by AI05-016.
elsif No (First_Entity (Typ))
and then Ada_Version < Ada_05
then
Error_Msg_N ("record aggregate must be null", N);
return;
end if;