Calls to Error_Msg procedures with a message using the < or <<
insertions need to set appropriately Error_Msg_Warn. This was not done
in one call, which would lead to spurious errors when changing the
implementation of a runtime unit. This fixes it so that changes can be
applied.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_ch4.adb (Expand_Allocator_Expression): Set Error_Msg_Warn
correctly.
diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb
--- a/gcc/ada/exp_ch4.adb
+++ b/gcc/ada/exp_ch4.adb
@@ -835,6 +835,7 @@ package body Exp_Ch4 is
Make_Raise_Program_Error (Loc,
Reason => PE_Accessibility_Check_Failed));
+ Error_Msg_Warn := SPARK_Mode /= On;
Error_Msg_N ("anonymous access discriminant is too deep for use"
& " in allocator<<", N);
Error_Msg_N ("\Program_Error [<<", N);