https://gcc.gnu.org/g:a45219815d17b050abc25a6348bfe7c981399363
commit r15-5141-ga45219815d17b050abc25a6348bfe7c981399363 Author: Steve Baird <[email protected]> Date: Tue Oct 22 16:20:27 2024 -0700 ada: Improve message for misused implicitly-defined preprocessor symbol. If the -u option is specified, then otherwise-undefined preprocessor symbols are implicitly defined to be False. If such an implicitly-defined symbol is then incorrectly used in a context that requires an integer value, the resulting error message should not incorrectly state that the symbol is undefined. gcc/ada/ChangeLog: * prep.adb (Expression): Improve error message text when an implicitly-defined Boolean-valued symbol is used in a context that requires an integer value. Diff: --- gcc/ada/prep.adb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/ada/prep.adb b/gcc/ada/prep.adb index b9502fc7782c..73fa8687afa7 100644 --- a/gcc/ada/prep.adb +++ b/gcc/ada/prep.adb @@ -489,7 +489,14 @@ package body Prep is if Symbol1 = No_Symbol then Error_Msg_Name_1 := Symbol_Name1; - Error_Msg ("unknown symbol %", Symbol_Pos1); + if Undefined_Symbols_Are_False then + Error_Msg + ("symbol % value is implicitly False" + & " and so not an integer", + Symbol_Pos1); + else + Error_Msg ("unknown symbol %", Symbol_Pos1); + end if; Symbol_Value1 := No_String; else @@ -498,7 +505,7 @@ package body Prep is if Data.Is_A_String then Error_Msg_Name_1 := Symbol_Name1; Error_Msg - ("symbol % value is not integer", + ("symbol % value is not an integer", Symbol_Pos1); else
