On 5/8/20 6:19 PM, Tom Rini wrote: > On Fri, May 08, 2020 at 06:10:27PM +0200, Heinrich Schuchardt > wrote: >> On 08.05.20 07:51, AKASHI Takahiro wrote: >>> C's switch statement takes an integer value for switching. As >>> efi_status_t is defined as unsigned long and each error code >>> has the top bit set, all "cases" cannot be reachable. >>> >>> Signed-off-by: AKASHI Takahiro <[email protected]> >>> Reported-by: Coverity (CID 300335) >> >> The requirement of C 1999 specification is: "The controlling >> expression of a switch statement shall have integer type." The >> requirement is not that the controlling expression should be >> int. >> >> GCC works fine with uint64_t as argument of a switch statement. > > OK, but for the record what about C11 with GNU extensions?
C11: "The controlling expression of a switchstatement shall have integer type." (https://web.cs.dal.ca/~vlado/pl/C_Standard_2011-n1570.pdf) Why did you expect anything that is incompatible to C99? Best regards Heinrich > >> To me this is a false positive of Coverity. > > I can go mark it as such after the above is answered, thanks! >

