+2018-05-31 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch4.adb (Expand_Modular_Addition, Expand_Modular_Subtraction):
+ Convert all operands of the generated code to Standard.Unsigned, to
+ prevent spurious visibility errors. This is needed when the generated
+ expansion involves a modular index type of an array type, and the index
+ type is not immediately visible.
+
2018-05-30 Piotr Trojanek <trojanek@adacore.com>
* einfo.ads (Package_Instantiation): Update comment after a routine
Else_Expr : constant Node_Id := New_Op_Node (N_Op_Subtract,
Loc);
begin
+ -- To prevent spurious visibility issues, convert all
+ -- operands to Standard.Unsigned.
+
Set_Left_Opnd (Cond_Expr,
- New_Copy_Tree (Left_Opnd (N)));
+ Unchecked_Convert_To (Standard_Unsigned,
+ New_Copy_Tree (Left_Opnd (N))));
Set_Right_Opnd (Cond_Expr,
Make_Integer_Literal (Loc, Mod_Minus_Right));
Append_To (Exprs, Cond_Expr);
Loc);
begin
Set_Left_Opnd (Cond_Expr,
- New_Copy_Tree (Left_Opnd (N)));
+ Unchecked_Convert_To (Standard_Unsigned,
+ New_Copy_Tree (Left_Opnd (N))));
Set_Right_Opnd (Cond_Expr,
Make_Integer_Literal (Loc, Intval (Right_Opnd (N))));
Append_To (Exprs, Cond_Expr);