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