aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteve Baird <baird@adacore.com>2024-10-22 16:20:27 -0700
committerMarc Poulhiès <dkm@gcc.gnu.org>2024-11-12 14:00:50 +0100
commita45219815d17b050abc25a6348bfe7c981399363 (patch)
tree6bfc1dbdca6bae0247e5467967a240715e142890 /gcc
parentfa50a45ece189fc19054e5596c974aca82525278 (diff)
downloadgcc-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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/prep.adb11
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