From: Steve Baird <ba...@adacore.com>

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.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 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 b9502fc7782..73fa8687afa 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
-- 
2.43.0

Reply via email to