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 <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/40140 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
@ -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) ({ \
|
||||
|
Reference in New Issue
Block a user