[fpc-pascal] Typecasting by accident

Flávio Etrusco flavio.etrusco at gmail.com
Fri May 12 18:26:41 CEST 2006


Weird, I wouldn't expect OBJFPC mode to allow automatic conversion
from AnsiString to Pointer...

-Flávio

On 5/12/06, Vinzent Hoefler <JeLlyFish.software at gmx.net> wrote:
> Just found a bug of mine I was wondering about since about three days,
> and wanted to share the fun with you:
>
> -- 8< --
>
> // "How to raise the wrong exception" or
> // "Why automatic type conversion really sucks"
>
> {$MODE OBJFPC}
>
> program
>    Exception_Fun;
>
>
> uses
>    SysUtils;
>
>
> function Exception_Message : AnsiString;
> begin
>    exit ('Will never show up, of course.');
> end {Exception_Message};
>
> type
>    Not_Now = class (SysUtils.Exception);
>
> begin
>    try
>       raise Not_Now (Exception_Message);
>    except
>       on e : Not_Now do
>          WriteLn (StdErr, 'Caught it! Strange.');
>    end {try};
> end {Exception_Fun}.
>
> -- 8< --
>
> No error, no warning, no note, no hint: Of course, a class type is just
> a pointer, AnsiStrings can be pointers. Pointers can be converted to
> any other pointer type... *crash*
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>



More information about the fpc-pascal mailing list