pragma(inline, true) errors?

Johan Engelen j at j.nl
Fri Apr 2 16:27:39 UTC 2021


On Friday, 2 April 2021 at 14:40:00 UTC, Steven Schveighoffer 
wrote:
>
> pragma(inline, true)
>
> means nothing in the current compiler. Well, it doesn't mean 
> nothing, it only means that in the case of configuring the 
> compiler to treat warnings as informational-only, you will get 
> an informational warning. In the case that warnings are treated 
> as an error, your code always compiles, and the function is 
> only inlined based on implementation definitions.
>
> Technically, this is according to spec, as it says what the 
> compiler does if a pragma(inline, true) function cannot be 
> inlined is implementation defined. But it does say "an error 
> message is typical". Given that there is only one front end, 
> the typical (and in fact universal) behavior now is, do nothing.

I'm pretty sure LDC will _never_ give any warning or error on 
this pragma.
It will almost always inline the function into the caller (I 
don't know of cases where it can't).
I question the value of knowing whether a function was inlined or 
not.
Note that `pragma(inline)` is very different functionality from 
"not emitting a function to object file", which _is_ useful 
functionality but there is no method to do that in D that I know 
of (and should not be called "inline").

cheers,
   Johan



More information about the Digitalmars-d mailing list