
On Fri, May 08, 2020 at 07:27:05PM +0200, Heinrich Schuchardt wrote:
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 takahiro.akashi@linaro.org 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?
I didn't really, I just wanted a reference to C11. It's odd I think Coverity hit this as a false positive, but it's just a tool. Thanks!