@@ -458,13 +458,15 @@ unexpected result when the structure is given as argument to a sizeof() operator
-doc_begin="Code violating Rule 20.7 is safe when macro parameters are used: (1)
as function arguments; (2) as macro arguments; (3) as array indices; (4) as lhs
-in assignments; (5) as initializers, possibly designated, in initalizer lists."
+in assignments; (5) as initializers, possibly designated, in initalizer lists;
+(6) as the constant expression in a switch clause label."
-config=MC3R1.R20.7,expansion_context=
{safe, "context(__call_expr_arg_contexts)"},
{safe, "left_right(^[(,\\[]$,^[),\\]]$)"},
{safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(node(array_subscript_expr), subscript)))"},
{safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(operator(assign), lhs)))"},
-{safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(node(init_list_expr||designated_init_expr), init)))"}
+{safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(node(init_list_expr||designated_init_expr), init)))"},
+{safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(node(case_stmt), lower||upper)))"}
-doc_end
-doc_begin="Violations involving the __config_enabled macros cannot be fixed without
@@ -416,7 +416,8 @@ Deviations related to MISRA C:2012 Rules:
(2) as macro arguments;
(3) as array indices;
(4) as lhs in assignments;
- (5) as initializers, possibly designated, in initalizer lists.
+ (5) as initializers, possibly designated, in initalizer lists;
+ (6) as constant expressions of switch case labels.
- Tagged as `safe` for ECLAIR.
* - R20.7