diff mbox

[libcpp] append "evaluates to 0" for Wundef diagnostic

Message ID CAAgBjMkLi3+G+B7oass51rfUmPm+BLdbXGRV=aKGrYTvDr+zXA@mail.gmail.com
State New
Headers show

Commit Message

Prathamesh Kulkarni Aug. 19, 2016, 8:45 a.m. UTC
Hi David,
This trivial patch appends "evaluates to 0", in Wundef diagnostic,
similar to clang, which prints the following diagnostic for undefined macro:
undef.c:1:5: warning: 'FOO' is not defined, evaluates to 0 [-Wundef]
#if FOO
    ^
Bootstrapped+tested on x86_64-unknown-linux-gnu.
OK to commit ?

Thanks,
Prathamesh
2016-08-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

libcpp/
	* expr.c (eval_token): Append "evaluates to 0" to Wundef diagnostic.

testsuite/
	* gcc.dg/cpp/warn-undef.c: Append "evaluates to 0" to dg-error.
	* gcc.dg/cpp/warn-undef-2.c: Likewise.

Comments

Prathamesh Kulkarni Aug. 19, 2016, 1:18 p.m. UTC | #1
On 19 August 2016 at 18:29, David Malcolm <dmalcolm@redhat.com> wrote:
> On Fri, 2016-08-19 at 14:15 +0530, Prathamesh Kulkarni wrote:

>> Hi David,

>> This trivial patch appends "evaluates to 0", in Wundef diagnostic,

>> similar to clang, which prints the following diagnostic for undefined

>> macro:

>> undef.c:1:5: warning: 'FOO' is not defined, evaluates to 0 [-Wundef]

>> #if FOO

>>     ^

>> Bootstrapped+tested on x86_64-unknown-linux-gnu.

>> OK to commit ?

>

> Nice tweak; LGTM.

Thanks, committed as r239609.

Regards,
Prathamesh
>

> Thanks

> Dave
diff mbox

Patch

diff --git a/gcc/testsuite/gcc.dg/cpp/warn-undef-2.c b/gcc/testsuite/gcc.dg/cpp/warn-undef-2.c
index 15fdde9..e71aeba 100644
--- a/gcc/testsuite/gcc.dg/cpp/warn-undef-2.c
+++ b/gcc/testsuite/gcc.dg/cpp/warn-undef-2.c
@@ -1,5 +1,5 @@ 
 // { dg-do preprocess }
 // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=undef" }
 /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */
-#if x  // { dg-error "\"x\" is not defined .-Werror=undef." }
+#if x  // { dg-error "\"x\" is not defined, evaluates to 0 .-Werror=undef." }
 #endif
diff --git a/gcc/testsuite/gcc.dg/cpp/warn-undef.c b/gcc/testsuite/gcc.dg/cpp/warn-undef.c
index dd4524d..2c2c421 100644
--- a/gcc/testsuite/gcc.dg/cpp/warn-undef.c
+++ b/gcc/testsuite/gcc.dg/cpp/warn-undef.c
@@ -1,5 +1,5 @@ 
 // { dg-do preprocess }
 // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wundef" }
 
-#if x  // { dg-warning "\"x\" is not defined .-Wundef." }
+#if x  // { dg-warning "\"x\" is not defined, evaluates to 0 .-Wundef." }
 #endif
diff --git a/libcpp/expr.c b/libcpp/expr.c
index 5cdca6f..d32f5a9 100644
--- a/libcpp/expr.c
+++ b/libcpp/expr.c
@@ -1073,7 +1073,7 @@  eval_token (cpp_reader *pfile, const cpp_token *token,
 	  result.low = 0;
 	  if (CPP_OPTION (pfile, warn_undef) && !pfile->state.skip_eval)
 	    cpp_warning_with_line (pfile, CPP_W_UNDEF, virtual_location, 0,
-				   "\"%s\" is not defined",
+				   "\"%s\" is not defined, evaluates to 0",
 				   NODE_NAME (token->val.node.node));
 	}
       break;