diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9c43843f3f8..88e3f7dee26 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-05-02 Geoffrey Keating + + * c-semantics.c (genrtl_switch_stmt, genrtl_if_stmt): Call + expand_stmt on result of expand_unreachable_stmt. + 2003-05-02 Gerald Pfeifer * doc/contrib.texi (Contributors): Add Daniel Berlin. diff --git a/gcc/c-semantics.c b/gcc/c-semantics.c index 19ea48ebd12..522d56322b3 100644 --- a/gcc/c-semantics.c +++ b/gcc/c-semantics.c @@ -416,19 +416,20 @@ genrtl_if_stmt (t) expand_start_cond (cond, 0); if (THEN_CLAUSE (t)) { + tree nextt = THEN_CLAUSE (t); + if (cond && integer_zerop (cond)) - expand_unreachable_stmt (THEN_CLAUSE (t), warn_notreached); - else - expand_stmt (THEN_CLAUSE (t)); + nextt = expand_unreachable_stmt (nextt, warn_notreached); + expand_stmt (nextt); } if (ELSE_CLAUSE (t)) { + tree nextt = ELSE_CLAUSE (t); expand_start_else (); if (cond && integer_nonzerop (cond)) - expand_unreachable_stmt (ELSE_CLAUSE (t), warn_notreached); - else - expand_stmt (ELSE_CLAUSE (t)); + nextt = expand_unreachable_stmt (nextt, warn_notreached); + expand_stmt (nextt); } expand_end_cond (); } @@ -687,7 +688,7 @@ genrtl_switch_stmt (t) emit_line_note (input_filename, input_line); expand_start_case (1, cond, TREE_TYPE (cond), "switch statement"); - expand_unreachable_stmt (SWITCH_BODY (t), warn_notreached); + expand_stmt (expand_unreachable_stmt (SWITCH_BODY (t), warn_notreached)); expand_end_case_type (cond, SWITCH_TYPE (t)); }