diff --git a/src/include/assert.h b/src/include/assert.h index afbed03318..6036635273 100644 --- a/src/include/assert.h +++ b/src/include/assert.h @@ -43,18 +43,22 @@ * will generate a compiler error even if the scope it was called from is dead * code. This may be useful to double-check things like constants that are only * valid if a certain Kconfig option is set. + * + * The error message when this hits will look like this: + * + * 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(message, line) do { \ - __attribute__((error(#message " in " __FILE__ ":" #line))) \ - extern void dead_code_assertion_failed_##line(void); \ - dead_code_assertion_failed_##line(); \ +#define __dead_code(line) do { \ + extern void dead_code_assertion_failed_at_line_##line(void); \ + dead_code_assertion_failed_at_line_##line(); \ } while (0) -#define _dead_code(message, line) __dead_code(message, line) -#define dead_code(message) _dead_code(message, __LINE__) +#define _dead_code(line) __dead_code(line) +#define dead_code() _dead_code(__LINE__) /* This can be used in the context of an expression of type 'type'. */ -#define dead_code_t(type, message) ({ \ - dead_code(message); \ +#define dead_code_t(type) ({ \ + dead_code(); \ *(type *)(uintptr_t)0; \ }) diff --git a/src/mainboard/google/gru/board.h b/src/mainboard/google/gru/board.h index e9545de625..acf3fb99a3 100644 --- a/src/mainboard/google/gru/board.h +++ b/src/mainboard/google/gru/board.h @@ -29,16 +29,16 @@ #define GPIO_BACKLIGHT GPIO(4, C, 6) #define GPIO_EC_IN_RW GPIO(0, A, 1) #define GPIO_EC_IRQ GPIO(1, C, 2) -#define GPIO_P15V_EN dead_code_t(gpio_t, "PP1500 doesn't exist on scarlet.") -#define GPIO_P18V_AUDIO_PWREN dead_code_t(gpio_t, "doesn't exist on scarlet.") +#define GPIO_P15V_EN dead_code_t(gpio_t) +#define GPIO_P18V_AUDIO_PWREN dead_code_t(gpio_t) #define GPIO_P30V_EN GPIO(0, B, 1) #define GPIO_SPK_PA_EN GPIO(0, A, 2) -#define GPIO_TP_RST_L dead_code_t(gpio_t, "don't need TP_RST_L on scarlet.") +#define GPIO_TP_RST_L dead_code_t(gpio_t) #define GPIO_TPM_IRQ GPIO(1, C, 1) #define GPIO_WP GPIO(0, B, 5) #else #define GPIO_BL_EN GPIO(1, C, 1) -#define GPIO_BACKLIGHT dead_code_t(gpio_t, "backlight controlled by ec") +#define GPIO_BACKLIGHT dead_code_t(gpio_t) #define GPIO_EC_IN_RW GPIO(3, B, 0) #define GPIO_EC_IRQ GPIO(0, A, 1) #define GPIO_P15V_EN GPIO(0, B, 2) @@ -53,7 +53,7 @@ #if CONFIG(GRU_HAS_WLAN_RESET) #define GPIO_WLAN_RST_L GPIO(1, B, 3) #else -#define GPIO_WLAN_RST_L dead_code_t(gpio_t, "no WLAN reset on this board in FW") +#define GPIO_WLAN_RST_L dead_code_t(gpio_t) #endif void setup_chromeos_gpios(void);