|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] docs/misra: add exceptions to rules
(re-adding xen-devel@)
On 22.08.2023 17:09, Nicola Vetrini wrote:
>
>>>> + - Switch with a controlling value incompatible with labeled
>>>> + statements
>>>
>>> What does this mean?
>>
>> I am not certain about this one actually. It could be when we have:
>>
>> switch (var) {
>> case 1:
>> something();
>> break;
>> case 2:
>> something();
>> break;
>> }
>>
>> and var could be 3 in theory?
>>
>> Nicola, please confirm.
>>
>>
>
> This one is about case labels that are statically determined not to be
> reachable (and hence
> saying that the code under that label is unreachable is not inaccurate)
> because the
> controlling expression of the switch statement can never have such
> value. An example below:
>
> $ cat p.c
> int f(void) {
> char c;
> switch (c) {
> case 260:
> return 260;
> case 4:
> return 4;
> }
> }
>
> $ eclair_env -enable=MC3.R2.1,B.REPORT.TXT -- gcc -c p.c
> violation for rule MC3.R2.1: (required) A project shall not contain
> unreachable code. (untagged)
> p.c:3.3-3.8: Loc #1 [culprit: `switch' statement has a controlling value
> incompatible with labeled statement]
> switch (c) {
> <~~~~>
> p.c:5.14-5.16: Loc #2 [evidence: integer literal is unreachable]
> return 260;
> <~>
>
> This is also true for things like
>
> switch(sizeof(int)) {
> case 2:
> ...
> case 4:
> ...
> }
Ah yes, we certainly have quite a few of those. Not sure how to best
describe such for the doc, but what was suggested (still visible at
the top) doesn't get this across, I'm afraid,
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |