Commit 85341ddd by Nathan Sidwell Committed by Nathan Sidwell

re PR c++/7640 (g++ 3.3 ICE: SEGV in integer_zerop)

.:	PR c++/7640
	* c-semantics.c (genrtl_do_stmt): Cope with NULL cond.
testsuite:
	* g++.dg/other/do1.C: New test.

From-SVN: r57212
parent 3ec83083
2002-09-16 Nathan Sidwell <nathan@codesourcery.com>
* c-semantics.c (genrtl_do_stmt): Cope with NULL cond.
2002-09-16 Geoffrey Keating <geoffk@redhat.com>
* config/rs6000/rs6000.c (build_mask64_2_operands): Suppress
......
......@@ -447,8 +447,9 @@ genrtl_do_stmt (t)
/* Recognize the common special-case of do { ... } while (0) and do
not emit the loop widgetry in this case. In particular this
avoids cluttering the rtl with dummy loop notes, which can affect
alignment of adjacent labels. */
if (integer_zerop (cond))
alignment of adjacent labels. COND can be NULL due to parse
errors. */
if (!cond || integer_zerop (cond))
{
expand_start_null_loop ();
expand_stmt (DO_BODY (t));
......
2002-09-16 Nathan Sidwell <nathan@codesourcery.com>
* g++.dg/other/do1.C: New test.
* g++.dg/template/subst1.C: New test.
2002-09-16 Steve Ellcey <sje@cup.hp.com>
......
// { dg-do compile }
// Copyright (C) 2002 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 16 Sep 2002 <nathan@codesourcery.com>
// PR 7640. ICE.
void init ()
{
do { } while (0)
obj = 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment