[fpc-pascal] inlining functions

Benito van der Zander benito at benibela.de
Wed Jan 2 00:19:13 CET 2019


Hi Jonas,

That is reasonable. Perhaps the hint should mention that?

But why is this still not inlined::

type TStrBuilder = object
   procedure append(const p: pchar; const l: SizeInt); inline;
   procedure append(const s: RawByteString);
end;

implementation

procedure TStrBuilder.append(const p: pchar; const l: SizeInt); inline;
begin
end;


procedure TStrBuilder.append(const s: RawByteString);
begin
   append(pchar(pointer(s)), length(s)); //inlinetest.pas(24,3) Note: 
Call to subroutine "procedure TStrBuilder.append(const p:PChar;const 
l:Int64);" marked as inline is not inlined
end;



Best,
Benito

Am 01.01.19 um 22:41 schrieb Jonas Maebe:
> On 01/01/19 22:38, Benito van der Zander wrote:
>> and why is it not inlining the count and append call of this string 
>> builder? It is not using any implementation only function
>
> Routines can only be inlined if they are called after their 
> implementation has been parsed. FPC compiles everything in a single pass.
>
>
> Jonas
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20190102/6151254b/attachment.html>


More information about the fpc-pascal mailing list