{ %fail } {$mode delphi} program test; type TDynamicArray = array of record end; // or array of whatever PDynamicArray = ^TDynamicArray; function TestA(): Pointer; begin Result := nil; end; function TestB(): PDynamicArray; begin // can't take address of function return value, but compiler instead says "Internal error 2006111510" Result := @TDynamicArray(TestA()); end; begin end.