be less aggressive in clearing blocks to protect against:
int main(int argc, char *argv[]) { int rv; if ((rv = ({ int _ret = 1; if (argc == 1) {} _ret; })) != 0) printf("%d\n", rv); return 0; }
This commit is contained in:
parent
84823ddb63
commit
175128e719
|
@ -1,5 +1,5 @@
|
|||
%{
|
||||
/* $NetBSD: cgram.y,v 1.79 2016/07/31 22:38:04 dholland Exp $ */
|
||||
/* $NetBSD: cgram.y,v 1.80 2016/08/19 10:58:15 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved.
|
||||
|
@ -35,7 +35,7 @@
|
|||
|
||||
#include <sys/cdefs.h>
|
||||
#if defined(__RCSID) && !defined(lint)
|
||||
__RCSID("$NetBSD: cgram.y,v 1.79 2016/07/31 22:38:04 dholland Exp $");
|
||||
__RCSID("$NetBSD: cgram.y,v 1.80 2016/08/19 10:58:15 christos Exp $");
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
@ -1458,7 +1458,7 @@ stmnt_list:
|
|||
|
||||
expr_stmnt:
|
||||
expr T_SEMI {
|
||||
expr($1, 0, 0, 1);
|
||||
expr($1, 0, 0, 0);
|
||||
ftflg = 0;
|
||||
}
|
||||
| T_SEMI {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: func.c,v 1.25 2013/04/19 17:43:05 christos Exp $ */
|
||||
/* $NetBSD: func.c,v 1.26 2016/08/19 10:58:15 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1994, 1995 Jochen Pohl
|
||||
|
@ -37,7 +37,7 @@
|
|||
|
||||
#include <sys/cdefs.h>
|
||||
#if defined(__RCSID) && !defined(lint)
|
||||
__RCSID("$NetBSD: func.c,v 1.25 2013/04/19 17:43:05 christos Exp $");
|
||||
__RCSID("$NetBSD: func.c,v 1.26 2016/08/19 10:58:15 christos Exp $");
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
@ -538,7 +538,7 @@ if1(tnode_t *tn)
|
|||
tn = cconv(tn);
|
||||
if (tn != NULL)
|
||||
tn = promote(NOOP, 0, tn);
|
||||
expr(tn, 0, 1, 1);
|
||||
expr(tn, 0, 1, 0);
|
||||
pushctrl(T_IF);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue