I\'m really confused.
// initial class type TTestClass = class( TInterfacedObject) end; {...} // test procedure procedure testMF(); va
The compiler doesn't add in any ref-counting code if you assign it to a class type variable. The refcount was never even set to 1, much less 2.
You'll see the expected behavior if you declare c1 and c2 as IInterface instead of TTestClass.
c1
c2
IInterface
TTestClass