diff 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
line wrap: on
line diff
--- a/Idea	Thu Feb 13 22:14:21 2003 +0900
+++ b/Idea	Sat Feb 15 17:54:30 2003 +0900
@@ -1506,3 +1506,22 @@
         int number;
     }
 virtual/real は、どうする。
+
+Sat Feb 15 14:00:03 JST 2003
+
+fdecl_struct を構文的に引数が出現するときに行うと、int *f(int
+a) などで、* の評価が終る前に、int aが評価されしまう。*obj 
+のobj を評価し終らないとfのタイプが確定しない。int*f()[] み
+たいな場合があるから。(?) なので、gcc と、そろえるためには、
+arg の先頭で fdecl_struct を行う方法ではだめで、fdecl 中であ
+とから修正する方が良い。
+
+fix しようにも引数リストなんて、存在しないじゃん!
+
+varargs を実装するのはめんどくさかろう...
+
+rvalue(expr(),type) では、expr() のtypeをrvalueに引き渡せな
+い。でも、type を大域変数にすると、rvalueを異なるタイプで呼
+び出すときにtypeを変更する必要がある。このrvalueのtype の扱
+いは、かなりはまったことがあるので、rvalue(int e,int type)の
+方が良いことは確かなんだが...