changeset 532:cecf5103679e

cond fix
author kono
date Fri, 30 Dec 2005 13:36:17 +0900
parents 19f5882997f5
children 80b5058f0535
files mc-inline.c
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mc-inline.c	Fri Dec 30 13:01:41 2005 +0900
+++ b/mc-inline.c	Fri Dec 30 13:36:17 2005 +0900
@@ -924,8 +924,10 @@
 	return pbinop(car(e1),e2,caddr(e1));
     case LCOND: case DCOND: case FCOND: case COND: case UCOND: case LUCOND:
 	e3 = pexpr(e2);
-	if (car(e3)==CONST) return pexpr(cadr(e3)?caddr(e1):cadddr(e1));
-	return list4(car(e1),e3,pexpr(cadr(e1)),pexpr(cadr(e2)));
+	if (car(e3)==CONST) return 
+	    caddr(e1)? pexpr(cadr(e3)?caddr(e1):cadddr(e1)) :
+		pexpr(cadr(e3)?e3:cadddr(e1)); // GNU extension h?:g
+	return list4(car(e1),e3,pexpr(caddr(e1)),pexpr(cadddr(e1)));
     case STASS: 
 	return psassign(e1);
     case ASS: case CASS: case SASS: