{ %NORUN } program tb0623; {$mode objfpc} {$modeswitch advancedrecords} type generic TTest = record public type PSelf = ^specialize TTest; public Next: PSelf; end; generic TTest2 = record Next: ^specialize TTest2; end; TTestLongInt = specialize TTest; TTestString = specialize TTest; TTest2LongInt = specialize TTest2; TTest2String = specialize TTest2; begin end.