changeset 833:15764443b058

lvalue_opt access general address
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 03 Dec 2010 18:43:18 +0900
parents bc919d849346
children 51b230253f27
files Changes mc-codegen.c
diffstat 2 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/Changes	Fri Dec 03 13:29:19 2010 +0900
+++ b/Changes	Fri Dec 03 18:43:18 2010 +0900
@@ -9958,4 +9958,6 @@
 ravlue が、indirect を付加してしまうので、動作がが変。 non parse mode の整合性が
 取れない。
 
-
+Fri Dec  3 14:27:04 JST 2010
+
+assign_expr0 の rvalue は、取ってしまっても意外に動く。float がおかしくなるらしい。
--- a/mc-codegen.c	Fri Dec 03 13:29:19 2010 +0900
+++ b/mc-codegen.c	Fri Dec 03 18:43:18 2010 +0900
@@ -1802,14 +1802,14 @@
 	    if (lp64) return list3(LADD,e1,llist2(LCONST,cadr(e)));
 	    return list3(ADD,e1,e);
 	default:
-	    error(-1); // ?
+	    return e0;
 	}
     } else if(car(e1)==GVAR) {
 	return(list3n(GVAR,cadr(e1)+cadr(e),ncaddr(e1)));
     } else if(car(e1)==LVAR) {
 	return(list3n(LVAR,cadr(e1)+cadr(e),ncaddr(e1)));
 //    } else if(car(e1)==RLVAR) {  this is not correct
-//	return(list3n(RLVAR,cadr(e1)+cadr(e),ncaddr(e1)));
+//	return(list3n(RLVAR,cadr(e1)+cadr(e),ncaddr(e1))); }
     }
     return e0;
 }
@@ -1838,7 +1838,7 @@
 	case ARROW:
 	    return list3(LADD,e1,e);
 	default:
-	    error(-1); // ?
+	    return e0;
 	}
     } else if(car(e1)==GVAR) {
 	return(list3n(GVAR,cadr(e1)+lcadr(e),ncaddr(e1)));