MISRA C Rule 2.1 states: "A project shall not contain unreachable code."
The return statements in the 'read_file()' function is unreachable due to function 'PrintErrMesg()' which is noreturn: PrintErrMesg(name, ret); /* not reached */ return false; This is deviated using a SAF-xx-safe comment (specified in the file 'docs/misra/safe.json'). No functional change. Signed-off-by: Dmytro Prokopchuk <dmytro_prokopch...@epam.com> --- Previous thread: https://patchew.org/Xen/5944d87aae330246b7dab6eebd04d5d71a7d7e8f.1755608417.git.dmytro._5fprokopch...@epam.com/ Test CI pipeline: https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1994619131 --- docs/misra/safe.json | 8 ++++++++ xen/common/efi/boot.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/misra/safe.json b/docs/misra/safe.json index 3584cb90c6..2b3178de2d 100644 --- a/docs/misra/safe.json +++ b/docs/misra/safe.json @@ -124,6 +124,14 @@ }, { "id": "SAF-15-safe", + "analyser": { + "eclair": "MC3A2.R2.1" + }, + "name": "Rule 2.1: unreachable code", + "text": "This is a deliberate use of unreachable code. The return statement is retained to improve code clarity and readability by explicitly specifying the intended behavior for a case if PrintErrMesg() was to return." + }, + { + "id": "SAF-16-safe", "analyser": {}, "name": "Sentinel", "text": "Next ID to be used" diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c index 50ff1d1bd2..860c41c8e7 100644 --- a/xen/common/efi/boot.c +++ b/xen/common/efi/boot.c @@ -852,7 +852,7 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name, PrintErr(L" failed for "); PrintErrMesg(name, ret); - /* not reached */ + /* SAF-15-safe deliberately unreachable code */ return false; } -- 2.43.0