diff options
author | Steve Baird <baird@adacore.com> | 2024-10-22 16:20:27 -0700 |
---|---|---|
committer | Marc Poulhiès <dkm@gcc.gnu.org> | 2024-11-12 14:00:50 +0100 |
commit | a45219815d17b050abc25a6348bfe7c981399363 (patch) | |
tree | 6bfc1dbdca6bae0247e5467967a240715e142890 | |
parent | fa50a45ece189fc19054e5596c974aca82525278 (diff) | |
download | gcc-a45219815d17b050abc25a6348bfe7c981399363.zip gcc-a45219815d17b050abc25a6348bfe7c981399363.tar.gz gcc-a45219815d17b050abc25a6348bfe7c981399363.tar.bz2 |
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.
-rw-r--r-- | gcc/ada/prep.adb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ada/prep.adb b/gcc/ada/prep.adb index b9502fc..73fa868 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 |