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;
 

Reply via email to