These aspects are still not fully implemented, so no test yet
Tested on x86_64-pc-linux-gnu, committed on trunk
2011-08-02 Robert Dewar <[email protected]>
* sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
pragmas (affects aspects [Component_]Default_Value
(Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
component type for the resolution
Index: sem_ch13.adb
===================================================================
--- sem_ch13.adb (revision 177110)
+++ sem_ch13.adb (working copy)
@@ -993,7 +993,7 @@
Aitem :=
Make_Pragma (Loc,
Pragma_Argument_Associations => New_List (
- New_Occurrence_Of (E, Eloc),
+ New_Occurrence_Of (E, Loc),
Relocate_Node (Expr)),
Pragma_Identifier =>
Make_Identifier (Sloc (Id), Chars (Id)));
@@ -1016,7 +1016,7 @@
Aitem :=
Make_Pragma (Loc,
Pragma_Argument_Associations => New_List (
- New_Occurrence_Of (E, Eloc),
+ New_Occurrence_Of (E, Loc),
Relocate_Node (Expr)),
Pragma_Identifier =>
Make_Identifier (Sloc (Id), Chars (Id)));
@@ -1038,7 +1038,7 @@
Make_Pragma (Loc,
Pragma_Argument_Associations => New_List (
Relocate_Node (Expr),
- New_Occurrence_Of (E, Eloc)),
+ New_Occurrence_Of (E, Loc)),
Pragma_Identifier =>
Make_Identifier (Sloc (Id), Chars (Id)),
Class_Present => Class_Present (Aspect));
@@ -5239,13 +5239,16 @@
when Boolean_Aspects =>
raise Program_Error;
- -- Default_Value and Default_Component_Value are resolved with
- -- the entity, which is the type in question.
+ -- Default_Value is resolved with the type entity in question
- when Aspect_Default_Component_Value |
- Aspect_Default_Value =>
+ when Aspect_Default_Value =>
T := Entity (ASN);
+ -- Default_Component_Value is resolved with the component type
+
+ when Aspect_Default_Component_Value =>
+ T := Component_Type (Entity (ASN));
+
-- Aspects corresponding to attribute definition clauses
when Aspect_Address =>