From c1d15562286b58bca94801788f0aa74152c56848 Mon Sep 17 00:00:00 2001 From: Michael Duda Date: Wed, 3 Apr 2019 18:20:40 -0600 Subject: [PATCH] Fix null pointer warning for string argument to parse_struct in registry code The fifth argument to the parse_struct function in the gen_inc code is a const char*. The call to parse_struct previously passed a C null character, '\0', which evaluates to zero and is therefore interpreted as a null pointer. It was likely intended to pass an empty C string, i.e., a string consisting of a single null character, in the call to parse_struct, using "\0" rather than '\0'. This was picked up by the XL C compiler: gen_inc.c:2531:52: warning: expression which evaluates to zero treated as a null pointer constant of type 'const char *' [-Wnon-literal-null-conversion] err = parse_struct(fd, registry, structs_xml, 0, '\0', corename); ^~~~ This warning turns out to be harmless, as the fifth argument to parse_struct is only used when the fourth argument is non-zero. --- src/tools/registry/gen_inc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/registry/gen_inc.c b/src/tools/registry/gen_inc.c index 90074576e5..089d73c36d 100644 --- a/src/tools/registry/gen_inc.c +++ b/src/tools/registry/gen_inc.c @@ -2553,7 +2553,7 @@ int parse_structs_from_registry(ezxml_t registry)/*{{{*/ fd = fopen("structs_and_variables.inc", "w+"); for (structs_xml = ezxml_child(registry, "var_struct"); structs_xml; structs_xml = structs_xml->next){ - err = parse_struct(fd, registry, structs_xml, 0, '\0', corename); + err = parse_struct(fd, registry, structs_xml, 0, "\0", corename); } fortprintf(fd, " subroutine %s_generate_structs(block, structPool, dimensionPool, packagePool)\n", core_string);