On 08.07.2013 16:50, Jonas Maebe wrote:

On 08 Jul 2013, at 16:39, Anthony Walter wrote:

Here is an example:

{ TObjectList<TItem: TObject> = class(TIndexedList<TItem>) }

bare.types.pas(1176,1)  procedure/function constructor Create(Boolean);An
unhandled exception occurred at $0816975E:
bare.types.pas(1182,1)  procedure/function procedure Clone:TObject;
Fatal: Compilation aborted
Error: ppc386 returned an error exitcode

Well, the compiler crashing with an unhandled exception is obviously
always a compiler bug, rather than an indication that backward
compatibility has been purposefully broken. The interleaved output of
the unhandled exception and the errors is also strange.

{ TObjectList<TItem> }

constructor TObjectList<TItem>.Create(OwnsObjects: Boolean);
begin // line 1176
 inherited Create;
 FOwnsObjects := OwnsObjects;
end;

function TObjectList<TItem>.Clone: TObject;
begin
 Result := TObjectList<TItem>.Create(False);
 Assign(Result, Self);
end;

Please file a bug report with complete code that can be fed to the
compiler to reproduce the crash.

I agree with Jonas here. While you are indeed using a feature that's in the development version of FPC (and it's not called "development version" for fun), I've not broken anything generics related on purpose, otherwise I'd have documented it in the approbiate places.

Also if you see "unhandled exception" or "internal error" in the compiler's output this normally always points to a bug. So please report it, so it can be fixed.

Regards,
Sven

_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to