From 0171f9ccfed8400a42a6cc44dc7bb0211a955603 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Wed, 6 Sep 2023 17:11:04 +0000 Subject: [PATCH] unifdef: Handle redefined symbols correctly. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D41758 (cherry picked from commit aacbe7384221d2eafa326864bbbe2f22a10063ce) Approved by: re (gjb) --- contrib/unifdef/unifdef.c | 6 +++++- usr.bin/unifdef/tests/unifdef_test.sh | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/contrib/unifdef/unifdef.c b/contrib/unifdef/unifdef.c index 82f6acd6603..3dd4ace7b81 100644 --- a/contrib/unifdef/unifdef.c +++ b/contrib/unifdef/unifdef.c @@ -1550,8 +1550,12 @@ addsym2(bool ignorethis, const char *symname, const char *val) sym->value = val; r = RB_INSERT(MACROMAP, ¯o_tree, sym); assert(r == NULL); + debugsym("addsym", sym); + } else { + sym->ignore = ignorethis; + sym->value = val; + debugsym("updsym", sym); } - debugsym("addsym", sym); } static void diff --git a/usr.bin/unifdef/tests/unifdef_test.sh b/usr.bin/unifdef/tests/unifdef_test.sh index 98adef3adfd..dfb08c18772 100644 --- a/usr.bin/unifdef/tests/unifdef_test.sh +++ b/usr.bin/unifdef/tests/unifdef_test.sh @@ -17,6 +17,27 @@ EOF atf_check -o file:f unifdef file <