Mercurial > hg > CbC > old > device
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)));