On Wed, 14 Oct 2026 at 22:16, Thomas Monjalon <[email protected]> wrote:
>
> The __rte_internal macro is intended to prevent calls
> to internal API functions unless ALLOW_INTERNAL_API is defined.
> Unfortunately the check misses some calls to internal API
> when built with GCC or Clang.
> Clang can be better to diagnose such cases.
>
> Clang 14 and later support the error attribute
> and therefore select it instead of diagnose_if for __rte_internal.
> Unlike diagnose_if, the error attribute only rejects
> internal API calls that remain after optimization.
> Internal API calls can therefore go easily unnoticed,
> making internal API checks less strict with recent Clang.
>
> Prefer diagnose_if when available to keep strong Clang diagnostics.
> Retain the error attribute as a fallback for GCC.
>
> Fixes: 4ab63cd60ceb ("eal: fix internal ABI tag with clang")
> Cc: [email protected]
>
> Signed-off-by: Thomas Monjalon <[email protected]>

What a mess this header has become :-).

I have a little cleanup to propose, and this patch actually does not
pass the chkinc test with recent clang now, as it raises warnings that
were not seen so far.
I'll post a v2, as we discussed offlist.


-- 
David Marchand

Reply via email to