diff mbox series

[2/2] predefine: fix multi-token predefine

Message ID 20200705131146.26439-3-luc.vanoostenryck@gmail.com (mailing list archive)
State Mainlined, archived
Headers show
Series predefine: fix multi-token predefine | expand

Commit Message

Luc Van Oostenryck July 5, 2020, 1:11 p.m. UTC
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@gmail.com>
---
 predefine.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

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);
 }