diff mc-parse.c @ 332:ce85d6106119

bit field continue. (code generation done)
author kono
date Thu, 24 Jun 2004 15:21:43 +0900
parents f25aa4f03198
children d488b72254fb
line wrap: on
line diff
--- a/mc-parse.c	Wed Jun 23 22:37:32 2004 +0900
+++ b/mc-parse.c	Thu Jun 24 15:21:43 2004 +0900
@@ -805,8 +805,7 @@
 	    if (mode==GSDECL||mode==GUDECL||mode==LSDECL||mode==LUDECL) {
 		if (scalar(type) || type==LONGLONG || type==ULONGLONG) {
 		    getsym(0);
-		    type = n->ty = 
-			list4(BIT_FIELD,type,0 /* bit offset */,symval);
+		    type = list4(BIT_FIELD,type,0 /* bit offset */,symval);
 		    getsym(0);
 		}
 	    } else
@@ -2263,7 +2262,7 @@
 	    return(list3(DPREINC,e,dir));
 #endif
 	if(type>0 && car(type)==BIT_FIELD)
-	    return(list3(BPREINC,e,dir));
+	    return(list4(BPREINC,e,dir,type));
 	if(car(type)!=POINTER)
 	    error(TYERR);
 	return(list4(UPREINC,e,
@@ -2410,7 +2409,7 @@
 	    return(list3(LUPOSTINC,e,dir));
 #endif
 	if(type>0 && car(type)==BIT_FIELD)
-	    return(list3(BPOSTINC,e,dir));
+	    return(list4(BPOSTINC,e,dir,type));
 	if(car(type)!=POINTER)
 	    error(TYERR);
 	return(list4(UPOSTINC,e,