[fpc-pascal] Weird absence of compilation error

Tomas Hajny XHajT03 at hajny.biz
Thu Mar 21 15:56:10 CET 2013


On Thu, March 21, 2013 10:53, OBones wrote:


Hello,

> I'm using FPC 2.6.0 and have the following test program :
>
> program test;
>
> function Element: Double;
> begin
>    Result := 4;
> end;
>
> function Tmp: Double;
> begin
>    Result := 10; + Element;
> end;
>
> begin
>    WriteLn(Tmp);
> end.
>
> And quite surprisingly to me, both ppc386 and pccrossx64 compile it
> successfully in Delphi mode!

I don't have Delphi but TP/BP fails on this indeed (even when replacing
the Result references with the names of the respective functions as
required with TP/BP).


> What's even weirder is that if I replace the Plus operator by a Minus
> operator, then the compilation fails.

No idea why '+' should be different to '-' here, but I may have missed
something.


> What I was expecting is that the compilation fails in all cases.
> Is there some flag that I failed to specify?

You can add {$X-} to the top (i.e. disable the so-called extended syntax
allowing to treat functions like procedures) and then it fails. However, I
think that it should fail on the plus sign in any case and I would suggest
filing a bug report.

Tomas





More information about the fpc-pascal mailing list