diff --git a/compiler/pdecsub.pas b/compiler/pdecsub.pas index d1477e2161..e0c3d1a307 100644 --- a/compiler/pdecsub.pas +++ b/compiler/pdecsub.pas @@ -99,7 +99,8 @@ implementation storepos : tfileposinfo; vs : tvarsym; begin - if not is_void(pd.rettype.def) and + if not(pd.proctypeoption in [potype_constructor,potype_destructor]) and + not is_void(pd.rettype.def) and paramanager.ret_in_param(pd.rettype.def,pd.proccalloption) then begin storepos:=akttokenpos; @@ -222,7 +223,9 @@ implementation vs : tvarsym; sl : tsymlist; begin - if not is_void(pd.rettype.def) then + { The result from constructors and destructors can't be accessed directly } + if not(pd.proctypeoption in [potype_constructor,potype_destructor]) and + not is_void(pd.rettype.def) then begin storepos:=akttokenpos; akttokenpos:=pd.fileinfo; @@ -1154,9 +1157,11 @@ end; procedure pd_syscall(pd:tabstractprocdef); +{$ifdef powerpc} var sym : tsym; symtable : tsymtable; +{$endif powerpc} begin if pd.deftype<>procdef then internalerror(2003042614); @@ -2269,7 +2274,10 @@ const end. { $Log$ - Revision 1.186 2004-08-13 17:53:37 jonas + Revision 1.187 2004-08-22 11:24:27 peter + * don't insert result variables for constructor/destructors + + Revision 1.186 2004/08/13 17:53:37 jonas * only set the mangled name immediately for external procedures in macpas mode if the procedure isn't cdecl (so that the c-prefix is taken into account, necessary for Mac OS X)