On 10.11.2023 12:23, Federico Serafini wrote:
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -214,6 +214,15 @@ definition is compiled-out or optimized-out by the 
> compiler)"
>  -config=MC3R1.R8.6,reports+={deliberate, "first_area(^.*has no definition$)"}
>  -doc_end
>  
> +-doc_begin="For functions memcpy(), memmove() and memset(), if there are
> +multiple definitions, those belong to different archives and the behavior of
> +linking is well defined by the toolchain: only one of the definitions will be
> +linked in (the first that is encountered searching the archives in the order
> +they appear on the command line)."
> +-config=MC3R1.R8.6,declarations+={deliberate, 
> "name(memcpy||memmove||memset)"}
> +-doc_end

Why would this be limited to mem*()? Anything put into lib.a is going to
be treated like that.

The description also isn't quite accurate: Per-arch mem*() won't be put
in archives, but in .o files. Those are always linked in. Anything not
otherwise resolved may then be resolved by picking objects from
archives (appearing later on the command line, unless specially grouped).

> +
> +

Nit: No double blank lines please.

Jan

Reply via email to