diff --git a/CMakeLists.txt b/CMakeLists.txt index 65e9e95878..196f157c48 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,7 @@ set(GTEST_BINARY_DIR ${binary_dir}) find_package(Threads) if(UNIX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fexceptions -g -Wall -Wpedantic") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fexceptions -g -Wall -Wpedantic -Wextra -Wno-unused-parameter") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast") endif() diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java index 1c03eed245..74e973c255 100644 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java @@ -235,10 +235,13 @@ private static void generateGroupClassHeader( indent + " inline void wrapForEncode(char *buffer, const %3$s count," + " std::uint64_t *pos, const std::uint64_t actingVersion, const std::uint64_t bufferLength)\n" + indent + " {\n" + + indent + "#pragma GCC diagnostic push\n" + + indent + "#pragma GCC diagnostic ignored \"-Wtype-limits\"\n" + indent + " if (count < %5$d || count > %6$d)\n" + indent + " {\n" + indent + " throw std::runtime_error(\"count outside of allowed range [E110]\");\n" + indent + " }\n" + + indent + "#pragma GCC diagnostic pop\n" + indent + " m_buffer = buffer;\n" + indent + " m_bufferLength = bufferLength;\n" + indent + " m_dimensions.wrap(m_buffer, *pos, actingVersion, bufferLength);\n" + @@ -256,11 +259,11 @@ private static void generateGroupClassHeader( numInGroupToken.encoding().applicableMaxValue().longValue())); sb.append(String.format( - indent + " static SBE_CONSTEXPR const std::uint64_t sbeHeaderSize()\n" + + indent + " static SBE_CONSTEXPR std::uint64_t sbeHeaderSize()\n" + indent + " {\n" + indent + " return %1$d;\n" + indent + " }\n\n" + - indent + " static SBE_CONSTEXPR const std::uint64_t sbeBlockLength()\n" + + indent + " static SBE_CONSTEXPR std::uint64_t sbeBlockLength()\n" + indent + " {\n" + indent + " return %2$d;\n" + indent + " }\n\n" + @@ -314,8 +317,7 @@ private static void generateGroupClassHeader( indent + " next(); func(*this);\n" + indent + " }\n" + indent + " }\n\n" + - indent + "#endif\n\n", - formatClassName(groupName))); + indent + "#endif\n\n")); } private static CharSequence generateGroupProperty( @@ -337,7 +339,7 @@ private static CharSequence generateGroupProperty( sb.append(String.format( "\n" + - indent + " static SBE_CONSTEXPR const std::uint16_t %1$sId(void)\n" + + indent + " static SBE_CONSTEXPR std::uint16_t %1$sId(void)\n" + indent + " {\n" + indent + " return %2$d;\n" + indent + " }\n\n", @@ -369,7 +371,7 @@ private static CharSequence generateGroupProperty( )); sb.append(String.format( - indent + " static SBE_CONSTEXPR const std::uint64_t %1$sSinceVersion(void)\n" + + indent + " static SBE_CONSTEXPR std::uint64_t %1$sSinceVersion(void)\n" + indent + " {\n" + indent + " return %2$d;\n" + indent + " }\n\n" + @@ -534,7 +536,7 @@ private void generateVarDataDescriptors( )); sb.append(String.format( - indent + " static SBE_CONSTEXPR const std::uint64_t %1$sSinceVersion(void)\n" + + indent + " static SBE_CONSTEXPR std::uint64_t %1$sSinceVersion(void)\n" + indent + " {\n" + indent + " return %2$d;\n" + indent + " }\n\n" + @@ -545,7 +547,7 @@ private void generateVarDataDescriptors( indent + " return m_actingVersion >= %1$sSinceVersion();\n" + indent + "#pragma GCC diagnostic pop\n" + indent + " }\n\n" + - indent + " static SBE_CONSTEXPR const std::uint16_t %1$sId(void)\n" + + indent + " static SBE_CONSTEXPR std::uint16_t %1$sId(void)\n" + indent + " {\n" + indent + " return %3$d;\n" + indent + " }\n\n", @@ -556,7 +558,7 @@ private void generateVarDataDescriptors( sb.append(String.format( "\n" + - indent + " static SBE_CONSTEXPR const std::uint64_t %sHeaderLength()\n" + + indent + " static SBE_CONSTEXPR std::uint64_t %sHeaderLength()\n" + indent + " {\n" + indent + " return %d;\n" + indent + " }\n", @@ -981,7 +983,7 @@ private CharSequence generatePrimitiveFieldMetaData(final String propertyName, f sb.append(String.format( "\n" + - indent + " static SBE_CONSTEXPR const %1$s %2$sNullValue()\n" + + indent + " static SBE_CONSTEXPR %1$s %2$sNullValue()\n" + indent + " {\n" + indent + " return %3$s;\n" + indent + " }\n", @@ -991,7 +993,7 @@ private CharSequence generatePrimitiveFieldMetaData(final String propertyName, f sb.append(String.format( "\n" + - indent + " static SBE_CONSTEXPR const %1$s %2$sMinValue()\n" + + indent + " static SBE_CONSTEXPR %1$s %2$sMinValue()\n" + indent + " {\n" + indent + " return %3$s;\n" + indent + " }\n", @@ -1001,7 +1003,7 @@ private CharSequence generatePrimitiveFieldMetaData(final String propertyName, f sb.append(String.format( "\n" + - indent + " static SBE_CONSTEXPR const %1$s %2$sMaxValue()\n" + + indent + " static SBE_CONSTEXPR %1$s %2$sMaxValue()\n" + indent + " {\n" + indent + " return %3$s;\n" + indent + " }\n", @@ -1011,7 +1013,7 @@ private CharSequence generatePrimitiveFieldMetaData(final String propertyName, f sb.append(String.format( "\n" + - indent + " static SBE_CONSTEXPR const std::size_t %1$sEncodingLength(void)\n" + + indent + " static SBE_CONSTEXPR std::size_t %1$sEncodingLength(void)\n" + indent + " {\n" + indent + " return %2$d;\n" + indent + " }\n", @@ -1066,7 +1068,7 @@ private CharSequence generateArrayProperty( sb.append(String.format( "\n" + - indent + " static SBE_CONSTEXPR const std::uint64_t %1$sLength(void)\n" + + indent + " static SBE_CONSTEXPR std::uint64_t %1$sLength(void)\n" + indent + " {\n" + indent + " return %2$d;\n" + indent + " }\n\n", @@ -1179,7 +1181,7 @@ private CharSequence generateConstPropertyMethods(final String propertyName, fin { return String.format( "\n" + - indent + " static SBE_CONSTEXPR const %1$s %2$s(void)\n" + + indent + " static SBE_CONSTEXPR %1$s %2$s(void)\n" + indent + " {\n" + indent + " return %3$s;\n" + indent + " }\n", @@ -1204,7 +1206,7 @@ private CharSequence generateConstPropertyMethods(final String propertyName, fin sb.append(String.format( "\n" + - indent + " static SBE_CONSTEXPR const std::uint64_t %1$sLength(void)\n" + + indent + " static SBE_CONSTEXPR std::uint64_t %1$sLength(void)\n" + indent + " {\n" + indent + " return %2$d;\n" + indent + " }\n\n", @@ -1278,7 +1280,7 @@ private static CharSequence generateFixedFlyweightCode(final String className, f " reset(buffer, offset, bufferLength, actingVersion);\n" + " return *this;\n" + " }\n\n" + - " static SBE_CONSTEXPR const std::uint64_t encodedLength(void)\n" + + " static SBE_CONSTEXPR std::uint64_t encodedLength(void)\n" + " {\n" + " return %2$s;\n" + " }\n\n" + @@ -1341,19 +1343,19 @@ private CharSequence generateMessageFlyweightCode(final String className, final " }\n\n" + "public:\n\n" + "%11$s" + - " static SBE_CONSTEXPR const %1$s sbeBlockLength(void)\n" + + " static SBE_CONSTEXPR %1$s sbeBlockLength(void)\n" + " {\n" + " return %2$s;\n" + " }\n\n" + - " static SBE_CONSTEXPR const %3$s sbeTemplateId(void)\n" + + " static SBE_CONSTEXPR %3$s sbeTemplateId(void)\n" + " {\n" + " return %4$s;\n" + " }\n\n" + - " static SBE_CONSTEXPR const %5$s sbeSchemaId(void)\n" + + " static SBE_CONSTEXPR %5$s sbeSchemaId(void)\n" + " {\n" + " return %6$s;\n" + " }\n\n" + - " static SBE_CONSTEXPR const %7$s sbeSchemaVersion(void)\n" + + " static SBE_CONSTEXPR %7$s sbeSchemaVersion(void)\n" + " {\n" + " return %8$s;\n" + " }\n\n" + @@ -1428,7 +1430,7 @@ private CharSequence generateFields(final String containingClassName, final List sb.append(String.format( "\n" + - indent + " static SBE_CONSTEXPR const std::uint16_t %1$sId(void)\n" + + indent + " static SBE_CONSTEXPR std::uint16_t %1$sId(void)\n" + indent + " {\n" + indent + " return %2$d;\n" + indent + " }\n\n", @@ -1436,7 +1438,7 @@ private CharSequence generateFields(final String containingClassName, final List signalToken.id())); sb.append(String.format( - indent + " static SBE_CONSTEXPR const std::uint64_t %1$sSinceVersion(void)\n" + + indent + " static SBE_CONSTEXPR std::uint64_t %1$sSinceVersion(void)\n" + indent + " {\n" + indent + " return %2$d;\n" + indent + " }\n\n" + @@ -1451,7 +1453,7 @@ private CharSequence generateFields(final String containingClassName, final List (long)signalToken.version())); sb.append(String.format( - indent + " static SBE_CONSTEXPR const std::size_t %1$sEncodingOffset(void)\n" + + indent + " static SBE_CONSTEXPR std::size_t %1$sEncodingOffset(void)\n" + indent + " {\n" + indent + " return %2$d;\n" + indent + " }\n\n", @@ -1587,7 +1589,7 @@ private CharSequence generateEnumProperty( formatByteOrderEncoding(token.encoding().byteOrder(), token.encoding().primitiveType()))); sb.append(String.format( - indent + " static SBE_CONSTEXPR const std::size_t %1$sEncodingLength(void)\n" + + indent + " static SBE_CONSTEXPR std::size_t %1$sEncodingLength(void)\n" + indent + " {\n" + indent + " return %2$d;\n" + indent + " }\n", @@ -1626,7 +1628,7 @@ private static Object generateBitsetProperty(final String propertyName, final To sb.append(String.format( "\n" + - indent + " static SBE_CONSTEXPR const std::size_t %1$sEncodingLength(void)\n" + + indent + " static SBE_CONSTEXPR std::size_t %1$sEncodingLength(void)\n" + indent + " {\n" + indent + " return %2$d;\n" + indent + " }\n",