PR c/16348
* c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
From-SVN: r84089
+2004-07-04 Richard Henderson <rth@redhat.com>
+
+ PR c/16348
+ * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
+
2004-07-04 Mark Mitchell <mark@codesourcery.com>
* configure.ac (ranlib_flags): New variable.
{
tree entry = NULL, exit = NULL, t;
- /* Force zeros to NULL so that we don't test them. */
- if (cond && integer_zerop (cond))
- cond = NULL;
-
/* Detect do { ... } while (0) and don't generate loop construct. */
+ if (cond && !cond_is_first && integer_zerop (cond))
+ cond = NULL;
if (cond_is_first || cond)
{
tree top = build1 (LABEL_EXPR, void_type_node, NULL_TREE);
--- /dev/null
+/* PR 16348: Make sure that condition-first false loops DTRT. */
+
+extern void abort ();
+
+int main()
+{
+ for (; 0 ;)
+ {
+ abort ();
+ label:
+ return 0;
+ }
+ goto label;
+}