cexp.y (warn_undef): New variable.
authorRichard Kenner <kenner@gcc.gnu.org>
Sun, 13 Apr 1997 16:49:45 +0000 (12:49 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Sun, 13 Apr 1997 16:49:45 +0000 (12:49 -0400)
(exp): Optionally warn about undefined identifiers that evaluate to 0.

From-SVN: r13877

gcc/cexp.y

index 2d2d34f8b2893af0edf5398c6a171a8654e45f77..133539f6c5d7031d48deaae4d0aedeeb8ee24d04 100644 (file)
@@ -164,6 +164,9 @@ extern int traditional;
 /* Flag for -lang-c89.  */
 extern int c89;
 
+/* Flag for -Wundef.  */
+extern int warn_undef;
+
 #ifndef CHAR_TYPE_SIZE
 #define CHAR_TYPE_SIZE BITS_PER_UNIT
 #endif
@@ -445,7 +448,10 @@ exp        :       exp '*' exp
        |       CHAR
                        { $$ = yylval.integer; }
        |       NAME
-                       { $$.value = 0;
+                       { if (warn_undef && !skip_evaluation)
+                           warning ("`%.*s' is not defined",
+                                    $1.length, $1.address);
+                         $$.value = 0;
                          $$.signedp = SIGNED; }
        ;