ASN.1: Avoid fall-through warning
Commit Message
There are two FALL_THROUGH warnings in asn1_compiler.c.
The patch fixes one of them with adding 'fallthough' annotation
copied from include/linux/compiler_attributes.h.
The second one is in function render_element() in line 1487:
case TYPE_REF:
if (e-class == ASN1_UNIV && e->method == ASN1_prim && e->tag == 0)
goto dont_render_tag;
default:
Is this break omission in the else branch made on purpose or is it a
mistake?
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: 4520c6a49af8 ("X.509: Add simple ASN.1 grammar compiler")
Signed-off-by: Katya Orlova <e.orlova@ispras.ru>
---
scripts/asn1_compiler.c | 5 +++++
1 file changed, 5 insertions(+), 0 deletions(-)
@@ -17,6 +17,12 @@
#include <sys/stat.h>
#include <linux/asn1_ber_bytecode.h>
+#if __has_attribute(__fallthrough__)
+# define fallthrough __attribute__((__fallthrough__))
+#else
+# define fallthrough do {} while (0) /* fallthrough */
+#endif
enum token_type {
DIRECTIVE_ABSENT,
DIRECTIVE_ALL,
@@ -965,6 +971,7 @@ static struct element *parse_type(struct token **_cursor, struct token *end,
case DIRECTIVE_EXTERNAL:
element->method = ASN1_CONS;
+ fallthrough;
case DIRECTIVE_BMPString:
case DIRECTIVE_GeneralString: