comparison Idea @ 46:b1c8ac8c308d

fix cascading struct retrun. Now it should be compatible with gcc calling sequence.
author kono
date Sat, 15 Feb 2003 17:54:30 +0900
parents b9266c88495c
children f6b5e4f1a962
comparison
equal deleted inserted replaced
45:b9266c88495c 46:b1c8ac8c308d
1504 char *bname; 1504 char *bname;
1505 int type; /* register variable or not */ 1505 int type; /* register variable or not */
1506 int number; 1506 int number;
1507 } 1507 }
1508 virtual/real は、どうする。 1508 virtual/real は、どうする。
1509
1510 Sat Feb 15 14:00:03 JST 2003
1511
1512 fdecl_struct を構文的に引数が出現するときに行うと、int *f(int
1513 a) などで、* の評価が終る前に、int aが評価されしまう。*obj
1514 のobj を評価し終らないとfのタイプが確定しない。int*f()[] み
1515 たいな場合があるから。(?) なので、gcc と、そろえるためには、
1516 arg の先頭で fdecl_struct を行う方法ではだめで、fdecl 中であ
1517 とから修正する方が良い。
1518
1519 fix しようにも引数リストなんて、存在しないじゃん!
1520
1521 varargs を実装するのはめんどくさかろう...
1522
1523 rvalue(expr(),type) では、expr() のtypeをrvalueに引き渡せな
1524 い。でも、type を大域変数にすると、rvalueを異なるタイプで呼
1525 び出すときにtypeを変更する必要がある。このrvalueのtype の扱
1526 いは、かなりはまったことがあるので、rvalue(int e,int type)の
1527 方が良いことは確かなんだが...