.: PR c++/7640
* c-semantics.c (genrtl_do_stmt): Cope with NULL cond.
testsuite:
* g++.dg/other/do1.C: New test.
From-SVN: r57212
+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
/* 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>
--- /dev/null
+// { 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;
+}