From: Mark Wielaard Date: Sat, 4 Dec 2021 00:18:42 +0000 (+0100) Subject: tests: varlocs workaround format-overflow errors X-Git-Tag: elfutils-0.187~74 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fd2cadbe4749f43551f7df90ee41837d83a6fbc4;p=thirdparty%2Felfutils.git tests: varlocs workaround format-overflow errors 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 --- diff --git a/tests/ChangeLog b/tests/ChangeLog index 9dceda89f..a5673f18f 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,13 @@ +2021-12-04 Mark Wielaard + + * varlocs.c (dwarf_encoding_string): Return "" instead + of NULL. + (dwarf_tag_string): Return "" instead of NULL. + (dwarf_attr_string): Return "" instead of NULL. + (dwarf_form_string): Return "" instead of NULL. + (dwarf_opcode_string): Return "" instead of NULL. + (print_expr): Remove assert. + 2021-11-18 Mark Wielaard * Makefile.am (dwfl_proc_attach_LDFLAGS): Add -rdynamic. diff --git a/tests/varlocs.c b/tests/varlocs.c index 152c65557..d2c13767c 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) {