Mercurial > hg > CbC > old > device
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)の +方が良いことは確かなんだが...