From 7c45c8363d86280d70cb671ea713a06fd462a6e7 Mon Sep 17 00:00:00 2001 From: Nico Huber Date: Sat, 4 Apr 2020 21:00:56 +0200 Subject: assert.h: Add a tag parameter to dead_code() When dead_code() is used in inline functions in a header file, the generated function names (based on the line number) may collide with a dead_code() in the code file. Now that we are hit by such a case, we need a quick solution: Add a tag argument for all invocations in header files. Change-Id: I0c548ce998cf8e28ae9f76b5c0ea5630b4e91ae2 Signed-off-by: Nico Huber Reviewed-on: https://review.coreboot.org/c/coreboot/+/40140 Tested-by: build bot (Jenkins) Reviewed-by: Felix Held Reviewed-by: Angel Pons Reviewed-by: Paul Menzel --- src/include/assert.h | 10 +++++----- src/security/vboot/misc.h | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/include/assert.h b/src/include/assert.h index 990cee11b5..fbaf11a4d6 100644 --- a/src/include/assert.h +++ b/src/include/assert.h @@ -65,13 +65,13 @@ * ramstage/lib/bootmode.o: In function `display_init_required': * bootmode.c:42: undefined reference to `dead_code_assertion_failed_at_line_42' */ -#define __dead_code(line) do { \ - extern void dead_code_assertion_failed_at_line_##line(void) \ +#define __dead_code(tag, line) do { \ + extern void dead_code_assertion_failed##tag##_at_line_##line(void) \ __attribute__((noreturn)); \ - dead_code_assertion_failed_at_line_##line(); \ + dead_code_assertion_failed##tag##_at_line_##line(); \ } while (0) -#define _dead_code(line) __dead_code(line) -#define dead_code() _dead_code(__LINE__) +#define _dead_code(tag, line) __dead_code(tag, line) +#define dead_code(tag) _dead_code(tag, __LINE__) /* This can be used in the context of an expression of type 'type'. */ #define dead_code_t(type) ({ \ diff --git a/src/security/vboot/misc.h b/src/security/vboot/misc.h index fd422b2ff7..22cc75052c 100644 --- a/src/security/vboot/misc.h +++ b/src/security/vboot/misc.h @@ -53,7 +53,7 @@ static inline int verification_should_run(void) else if (CONFIG(VBOOT_STARTS_IN_BOOTBLOCK)) return ENV_BOOTBLOCK; else - dead_code(); + dead_code(_in_vboot_misc_h); } static inline int verstage_should_load(void) @@ -82,7 +82,7 @@ static inline int vboot_logic_executed(void) /* Post-RAM stages are "after the romstage" */ return !ENV_ROMSTAGE_OR_BEFORE; } else { - dead_code(); + dead_code(_in_vboot_misc_h); } } -- cgit v1.2.3