> -----Original Message-----
> From: Peng, ZhihongX <[email protected]>
> Sent: Friday, October 15, 2021 4:11 PM
> To: [email protected]; Burakov, Anatoly
> <[email protected]>; Ananyev, Konstantin
> <[email protected]>; [email protected];
> Dumitrescu, Cristian <[email protected]>; Mcnamara, John
> <[email protected]>
> Cc: [email protected]; Lin, Xueqin <[email protected]>; Peng, ZhihongX
> <[email protected]>; [email protected]
> Subject: [PATCH v10 3/4] pipeline: Fix compilation error with gcc ASan
>
> From: Zhihong Peng <[email protected]>
>
> The gcc will check code more stricter when ASan enabled.
> "Control reaches end of non-void function" error occurs here.
>
> Fixes: f38913b7fb8e ("pipeline: add meter array to SWX")
> Cc: [email protected]
>
> Signed-off-by: Xueqin Lin <[email protected]>
> Signed-off-by: Zhihong Peng <[email protected]>
> ---
> v7: no change
> v8: no change
> v9: Modify the submit log
> v10:no change
> ---
> lib/pipeline/rte_swx_pipeline.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/pipeline/rte_swx_pipeline.c b/lib/pipeline/rte_swx_pipeline.c
> index 1cd09a4b44..0acd6c6752 100644
> --- a/lib/pipeline/rte_swx_pipeline.c
> +++ b/lib/pipeline/rte_swx_pipeline.c
> @@ -4642,7 +4642,7 @@ instr_meter_translate(struct rte_swx_pipeline *p,
> return 0;
> }
>
> - CHECK(0, EINVAL);
> + return -EINVAL;
> }
>
> static inline void
> @@ -5937,7 +5937,7 @@ instr_translate(struct rte_swx_pipeline *p,
> instr,
> data);
>
> - CHECK(0, EINVAL);
> + return -EINVAL;
> }
>
> static struct instruction_data *
> --
> 2.25.1
NACK.
This is a false issue, no bug is here. CHECK(0, EINVAL) translates to an
unconditional return -EINVAL.
Does this tool work correctly when macros are present? Maybe the tool should
parse the preprocessed C code as opposed to initial C code?
Regards,
Cristian