The function predefine() and its variants are only valid if they define a single-token value. However, when a type is signed, predefine_min() will produce a multi-token value. Fix this by using add_pre_buffer() instead of predefine(). Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- predefine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/predefine.c b/predefine.c index ff457b389480..d05b1018fdce 100644 --- a/predefine.c +++ b/predefine.c @@ -52,7 +52,7 @@ static void predefined_min(const char *name, struct symbol *type) snprintf(buf, sizeof(buf), "__%s_MIN__", name); if (is_signed_type(type)) - predefine(buf, 1, "(-__%s_MAX__ - 1)", name); + add_pre_buffer("#weak_define %s (-__%s_MAX__ - 1)\n", buf, name); else predefine(buf, 1, "0%s", suffix); } -- 2.27.0