Skip to content

Commit 623726f

Browse files
authored
Merge pull request #454 from nauhygon/master
Partial fix for #437: Use compiler detections to guard pragmas to suppress excessive warnings
2 parents c8cf74a + ec70e94 commit 623726f

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java

100644100755
+16
Original file line numberDiff line numberDiff line change
@@ -223,13 +223,17 @@ private static void generateGroupClassHeader(
223223
indent + " inline void wrapForEncode(char *buffer, const %3$s count," +
224224
" std::uint64_t *pos, const std::uint64_t actingVersion, const std::uint64_t bufferLength)\n" +
225225
indent + " {\n" +
226+
indent + "#if defined(__GNUG__) && !defined(__clang__)\n" +
226227
indent + "#pragma GCC diagnostic push\n" +
227228
indent + "#pragma GCC diagnostic ignored \"-Wtype-limits\"\n" +
229+
indent + "#endif\n" +
228230
indent + " if (count < %5$d || count > %6$d)\n" +
229231
indent + " {\n" +
230232
indent + " throw std::runtime_error(\"count outside of allowed range [E110]\");\n" +
231233
indent + " }\n" +
234+
indent + "#if defined(__GNUG__) && !defined(__clang__)\n" +
232235
indent + "#pragma GCC diagnostic pop\n" +
236+
indent + "#endif\n" +
233237
indent + " m_buffer = buffer;\n" +
234238
indent + " m_bufferLength = bufferLength;\n" +
235239
indent + " m_dimensions.wrap(m_buffer, *pos, actingVersion, bufferLength);\n" +
@@ -363,10 +367,14 @@ private static CharSequence generateGroupProperty(
363367
indent + " }\n\n" +
364368
indent + " bool %1$sInActingVersion()\n" +
365369
indent + " {\n" +
370+
indent + "#if defined(__clang__)\n" +
366371
indent + "#pragma clang diagnostic push\n" +
367372
indent + "#pragma clang diagnostic ignored \"-Wtautological-compare\"\n" +
373+
indent + "#endif\n" +
368374
indent + " return m_actingVersion >= %1$sSinceVersion();\n" +
375+
indent + "#if defined(__clang__)\n" +
369376
indent + "#pragma clang diagnostic pop\n" +
377+
indent + "#endif\n" +
370378
indent + " }\n",
371379
propertyName,
372380
token.version()));
@@ -522,10 +530,14 @@ private void generateVarDataDescriptors(
522530
indent + " }\n\n" +
523531
indent + " bool %1$sInActingVersion()\n" +
524532
indent + " {\n" +
533+
indent + "#if defined(__clang__)\n" +
525534
indent + "#pragma clang diagnostic push\n" +
526535
indent + "#pragma clang diagnostic ignored \"-Wtautological-compare\"\n" +
536+
indent + "#endif\n" +
527537
indent + " return m_actingVersion >= %1$sSinceVersion();\n" +
538+
indent + "#if defined(__clang__)\n" +
528539
indent + "#pragma clang diagnostic pop\n" +
540+
indent + "#endif\n" +
529541
indent + " }\n\n" +
530542
indent + " static SBE_CONSTEXPR std::uint16_t %1$sId()\n" +
531543
indent + " {\n" +
@@ -1414,10 +1426,14 @@ private CharSequence generateFields(final String containingClassName, final List
14141426
indent + " }\n\n" +
14151427
indent + " bool %1$sInActingVersion()\n" +
14161428
indent + " {\n" +
1429+
indent + "#if defined(__clang__)\n" +
14171430
indent + "#pragma clang diagnostic push\n" +
14181431
indent + "#pragma clang diagnostic ignored \"-Wtautological-compare\"\n" +
1432+
indent + "#endif\n" +
14191433
indent + " return m_actingVersion >= %1$sSinceVersion();\n" +
1434+
indent + "#if defined(__clang__)\n" +
14201435
indent + "#pragma clang diagnostic pop\n" +
1436+
indent + "#endif\n" +
14211437
indent + " }\n\n",
14221438
propertyName,
14231439
signalToken.version()));

0 commit comments

Comments
 (0)