|
@@ -134,6 +134,7 @@ implementation
|
|
cutils,verbose,globals,
|
|
cutils,verbose,globals,
|
|
symconst,symbase,defutil,defcmp,
|
|
symconst,symbase,defutil,defcmp,
|
|
nbas,nutils,
|
|
nbas,nutils,
|
|
|
|
+ wpobase,
|
|
htypechk,pass_1,ncal,nld,ncon,ncnv,cgbase,procinfo
|
|
htypechk,pass_1,ncal,nld,ncon,ncnv,cgbase,procinfo
|
|
;
|
|
;
|
|
|
|
|
|
@@ -171,11 +172,16 @@ implementation
|
|
expectloc:=LOC_REGISTER;
|
|
expectloc:=LOC_REGISTER;
|
|
if left.nodetype<>typen then
|
|
if left.nodetype<>typen then
|
|
firstpass(left)
|
|
firstpass(left)
|
|
- { keep track of which classes might be instantiated via a classrefdef }
|
|
|
|
- else if (left.resultdef.typ=classrefdef) then
|
|
|
|
- tobjectdef(tclassrefdef(left.resultdef).pointeddef).register_maybe_created_object_type
|
|
|
|
- else if (left.resultdef.typ=objectdef) then
|
|
|
|
- tobjectdef(left.resultdef).register_maybe_created_object_type;
|
|
|
|
|
|
+ else if not assigned(current_procinfo) or
|
|
|
|
+ (po_inline in current_procinfo.procdef.procoptions) or
|
|
|
|
+ wpoinfomanager.symbol_live(current_procinfo.procdef.mangledname) then
|
|
|
|
+ begin
|
|
|
|
+ { keep track of which classes might be instantiated via a classrefdef }
|
|
|
|
+ if (left.resultdef.typ=classrefdef) then
|
|
|
|
+ tobjectdef(tclassrefdef(left.resultdef).pointeddef).register_maybe_created_object_type
|
|
|
|
+ else if (left.resultdef.typ=objectdef) then
|
|
|
|
+ tobjectdef(left.resultdef).register_maybe_created_object_type
|
|
|
|
+ end
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|