On 05 Apr 2009, at 17:12, JoshyFun wrote:
TCustomFoo=class(TObject);
TDerivedFoo=class(TCustomFoo)
procedure Myprocedure(); virtual;
end;
TDeDerivedFoo=class(TDerivedFoo)
procedure MyProcedure(); override;
end;
And in the code:
var
MyObj: TCustomFoo;
begin
MyObj:=TDeDerivedFoo.Create();
TDerivedFoo(MyObj).Myprocedure();
end;
Something like this could kill the dead code detection ? A simple
yes/no is enoght :)
Not in case of whole-program optimization:
--- dead.sorg 2009-04-05 17:24:25.000000000 +0200
+++ dead.s 2009-04-05 17:24:32.000000000 +0200
@@ -91,10 +91,7 @@
# [29] TDerivedFoo(MyObj).Myprocedure();
movl L_U_P$PROGRAM_MYOBJ$non_lazy_ptr-Lj2(%ebx),%eax
movl (%eax),%eax
- movl L_U_P$PROGRAM_MYOBJ$non_lazy_ptr-Lj2(%ebx),%edx
- movl (%edx),%edx
- movl (%edx),%edx
- call *80(%edx)
+ call L_P$PROGRAM_TDEDERIVEDFOO_$__MYPROCEDURE$stub
I'm not sure about -dvtentry.
Jonas
_______________________________________________
fpc-pascal maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal