This fixes a minor discrepancy in Expand_N_Attribute_Reference, which
still thinks that the Alignment primitive operation for tagged types is
a function call returning Integer, while it's a selected component
returning Natural these days.
No functional changes.
Tested on x86_64-pc-linux-gnu, committed on trunk
2020-06-02 Eric Botcazou <ebotca...@adacore.com>
gcc/ada/
* exp_attr.adb (Expand_N_Attribute_Reference)
<Attribute_Alignment>: Adjust comment and compare against proper
type.
--- gcc/ada/exp_attr.adb
+++ gcc/ada/exp_attr.adb
@@ -2460,11 +2460,11 @@ package body Exp_Attr is
New_Node := Build_Get_Alignment (Loc, New_Node);
-- Case where the context is a specific integer type with which
- -- the original attribute was compatible. The function has a
- -- specific type as well, so to preserve the compatibility we
- -- must convert explicitly.
+ -- the original attribute was compatible. But the alignment has a
+ -- specific type in a-tags.ads (Standard.Natural) so, in order to
+ -- preserve type compatibility, we must convert explicitly.
- if Typ /= Standard_Integer then
+ if Typ /= Standard_Natural then
New_Node := Convert_To (Typ, New_Node);
end if;