diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/c/CGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/c/CGenerator.java index 0219f89034..8107b6e8e4 100755 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/c/CGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/c/CGenerator.java @@ -217,10 +217,8 @@ private static void generateGroupStruct( final List tokens, final int index) { - final String dimensionsStructName = formatScopedName(scope, tokens.get(index + 1).name()); - sb.append(String.format("\n" + - "struct %1$s\n" + + "struct %s\n" + "{\n" + " char *buffer;\n" + " uint64_t buffer_length;\n" + @@ -230,9 +228,8 @@ private static void generateGroupStruct( " uint64_t index;\n" + " uint64_t offset;\n" + " uint64_t acting_version;\n" + - " struct %2$s dimensions;\n" + "};\n", - groupName, dimensionsStructName)); + groupName)); } private static void generateGroupHeaderFunctions( @@ -265,12 +262,13 @@ private static void generateGroupHeaderFunctions( "{\n" + " codec->buffer = buffer;\n" + " codec->buffer_length = buffer_length;\n" + - " if (!%2$s_wrap(&codec->dimensions, codec->buffer, *pos, acting_version, buffer_length))\n" + + " struct %2$s dimensions;\n" + + " if (!%2$s_wrap(&dimensions, codec->buffer, *pos, acting_version, buffer_length))\n" + " {\n" + " return NULL;\n" + " }\n" + - " codec->block_length = %2$s_blockLength(&codec->dimensions);\n" + - " codec->count = %2$s_numInGroup(&codec->dimensions);\n" + + " codec->block_length = %2$s_blockLength(&dimensions);\n" + + " codec->count = %2$s_numInGroup(&dimensions);\n" + " codec->index = -1;\n" + " codec->acting_version = acting_version;\n" + " codec->position_ptr = pos;\n" + @@ -305,12 +303,13 @@ private static void generateGroupHeaderFunctions( "#endif\n" + " codec->buffer = buffer;\n" + " codec->buffer_length = buffer_length;\n" + - " if (!%5$s_wrap(&codec->dimensions, codec->buffer, *pos, acting_version, buffer_length))\n" + + " struct %5$s dimensions;\n" + + " if (!%5$s_wrap(&dimensions, codec->buffer, *pos, acting_version, buffer_length))\n" + " {\n" + " return NULL;\n" + " }\n" + - " %5$s_set_blockLength(&codec->dimensions, (%2$s)%3$d);\n" + - " %5$s_set_numInGroup(&codec->dimensions, (%4$s)count);\n" + + " %5$s_set_blockLength(&dimensions, (%2$s)%3$d);\n" + + " %5$s_set_numInGroup(&dimensions, (%4$s)count);\n" + " codec->index = -1;\n" + " codec->count = count;\n" + " codec->block_length = %3$d;\n" + @@ -1595,7 +1594,8 @@ private CharSequence generateArrayProperty( " {\n" + " errno = E105;\n" + " return NULL;\n" + - " }\n" + + " }\n\n" + + "%5$s\n" + " return codec;\n" + "}\n", diff --git a/sbe-tool/src/test/c/CMakeLists.txt b/sbe-tool/src/test/c/CMakeLists.txt index d5d2a85b53..47f0aba0db 100644 --- a/sbe-tool/src/test/c/CMakeLists.txt +++ b/sbe-tool/src/test/c/CMakeLists.txt @@ -22,7 +22,7 @@ function(sbe_test name) ) target_compile_options("C${name}" PRIVATE $<$:-Werror>) target_compile_options("C${name}" PRIVATE $<$:-Werror>) - target_compile_options("C${name}" PRIVATE $<$:-Werror>) + target_compile_options("C${name}" PRIVATE $<$:-Werror -Wno-maybe-uninitialized>) target_link_libraries("C${name}" ${GTEST_LIBS} ${CMAKE_THREAD_LIBS_INIT}) add_test(NAME C${name} COMMAND C${name} WORKING_DIRECTORY ${C_CODEC_TARGET_DIR}) add_dependencies(C${name} gtest)