From ca05fe42854203c9332c1812bde6164ef56c6bf9 Mon Sep 17 00:00:00 2001 From: Stein Heselmans Date: Thu, 14 Sep 2017 08:13:17 +0200 Subject: [PATCH] Fix #147: Push and Pop pragmas not supported by older GCC Solution: check GCC compiler version to be at least 4.6 before enabling pragma diagnostic push/pop --- lib/cmock_generator.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/cmock_generator.rb b/lib/cmock_generator.rb index 592e979..d4fe404 100644 --- a/lib/cmock_generator.rb +++ b/lib/cmock_generator.rb @@ -103,7 +103,9 @@ class CMockGenerator file << "\n" file << "/* Ignore the following warnings, since we are copying code */\n" file << "#if defined(__GNUC__) && !defined(__ICC) && !defined(__TMS470__)\n" + file << "#if __GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 6 || (__GNUC_MINOR__ == 6 && __GNUC_PATCHLEVEL__ > 0)))\n" file << "#pragma GCC diagnostic push\n" + file << "#endif\n" file << "#if !defined(__clang__)\n" file << "#pragma GCC diagnostic ignored \"-Wpragmas\"\n" file << "#endif\n" @@ -128,8 +130,10 @@ class CMockGenerator def create_mock_header_footer(header) header << "\n" header << "#if defined(__GNUC__) && !defined(__ICC) && !defined(__TMS470__)\n" + header << "#if __GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 6 || (__GNUC_MINOR__ == 6 && __GNUC_PATCHLEVEL__ > 0)))\n" header << "#pragma GCC diagnostic pop\n" header << "#endif\n" + header << "#endif\n" header << "\n" header << "#endif\n" end