From 24eb92454ad57c0b901426ca38becb26dc6483ac Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sat, 4 Dec 2021 01:18:42 +0100 Subject: [PATCH] tests: varlocs workaround format-overflow errors MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In function ‘printf’, inlined from ‘handle_attr’ at varlocs.c:932:3: error: ‘%s’ directive argument is null [-Werror=format-overflow=] The warning is technically correct. A %s argument should not be NULL. Although in practice all implementations will print it as "(null)". Workaround this by simply changing the dwarf string functions to return an "" string. The test is for the correct names, either "(null)" or "" would make it fail (also remove a now unnecessary assert, the switch statement will check for unknown opcodes anyway). Signed-off-by: Mark Wielaard [sw0312.kim: partially pick upstream commit fd2cadbe4749f43551f7df90ee41837d83a6fbc4 to fix build warning except src/ChangeLog] Signed-off-by: Seung-Woo Kim Change-Id: I52273c671e9ecea250135096629e708163c5aa16 --- tests/varlocs.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/tests/varlocs.c b/tests/varlocs.c index 4050519..1d68594 100644 --- a/tests/varlocs.c +++ b/tests/varlocs.c @@ -76,7 +76,7 @@ dwarf_encoding_string (unsigned int code) if (likely (code < sizeof (known) / sizeof (known[0]))) return known[code]; - return NULL; + return ""; } static const char * @@ -88,7 +88,7 @@ dwarf_tag_string (unsigned int tag) DWARF_ALL_KNOWN_DW_TAG #undef DWARF_ONE_KNOWN_DW_TAG default: - return NULL; + return ""; } } @@ -101,7 +101,7 @@ dwarf_attr_string (unsigned int attrnum) DWARF_ALL_KNOWN_DW_AT #undef DWARF_ONE_KNOWN_DW_AT default: - return NULL; + return ""; } } @@ -114,7 +114,7 @@ dwarf_form_string (unsigned int form) DWARF_ALL_KNOWN_DW_FORM #undef DWARF_ONE_KNOWN_DW_FORM default: - return NULL; + return ""; } } @@ -160,7 +160,7 @@ dwarf_opcode_string (unsigned int code) if (likely (code < sizeof (known) / sizeof (known[0]))) return known[code]; - return NULL; + return ""; } // Forward reference for print_expr_block. @@ -198,7 +198,6 @@ print_expr (Dwarf_Attribute *attr, Dwarf_Op *expr, Dwarf_Addr addr, int depth) uint8_t atom = expr->atom; const char *opname = dwarf_opcode_string (atom); - assert (opname != NULL); switch (atom) { -- 2.7.4