(simple_if, if_prefix, stmt): Undo Jul 7 change.
authorJim Wilson <wilson@gcc.gnu.org>
Wed, 28 Jul 1993 18:06:21 +0000 (11:06 -0700)
committerJim Wilson <wilson@gcc.gnu.org>
Wed, 28 Jul 1993 18:06:21 +0000 (11:06 -0700)
(if_prefix): Store stmt_count in $$ not $1.
(stmt): Add comment explaining why empty-if warning is here.

From-SVN: r5029

gcc/c-parse.in

index bae5736..7acce2a 100644 (file)
@@ -1568,12 +1568,7 @@ compstmt: '{' '}'
 
 /* Value is number of statements counted as of the closeparen.  */
 simple_if:
-         if_prefix
-               { $<itype>1 = stmt_count; }
-         lineno_labeled_stmt
-               { if (extra_warnings && stmt_count == $<itype>1)
-                   warning_with_file_and_line (if_stmt_file, if_stmt_line,
-                                               "empty body in an if-statement"); }
+         if_prefix lineno_labeled_stmt
 /* Make sure expand_end_cond is run once
    for each call to expand_start_cond.
    Otherwise a crash is likely.  */
@@ -1584,6 +1579,7 @@ if_prefix:
          IF '(' expr ')'
                { emit_line_note ($<filename>-1, $<lineno>0);
                  expand_start_cond (truthvalue_conversion ($3), 0);
+                 $<itype>$ = stmt_count;
                  if_stmt_file = $<filename>-1;
                  if_stmt_line = $<lineno>0;
                  position_after_white_space (); }
@@ -1658,7 +1654,13 @@ stmt:
                  if (extra_warnings && stmt_count == $<itype>1)
                    warning ("empty body in an else-statement"); }
        | simple_if %prec IF
-               { expand_end_cond (); }
+               { expand_end_cond ();
+                 /* This warning is here instead of in simple_if, because we
+                    do not want a warning if an empty if is followed by an
+                    else statement.  */
+                 if (extra_warnings && stmt_count == $<itype>1)
+                   warning_with_file_and_line (if_stmt_file, if_stmt_line,
+                                               "empty body in an if-statement"); }
 /* Make sure expand_end_cond is run once
    for each call to expand_start_cond.
    Otherwise a crash is likely.  */