diff options
-rw-r--r-- | build/root.build | 7 | ||||
-rw-r--r-- | libbutl/utility.ixx | 12 | ||||
-rw-r--r-- | tests/build/root.build | 2 |
3 files changed, 9 insertions, 12 deletions
diff --git a/build/root.build b/build/root.build index 2151480..f0624d2 100644 --- a/build/root.build +++ b/build/root.build @@ -15,6 +15,13 @@ if ($cxx.target.system == 'win32-msvc') if ($cxx.class == 'msvc') cxx.coptions += /wd4251 /wd4275 /wd4800 +elif ($cxx.id == 'gcc') +{ + # See GCC bugs 100115 and 98753 (attachment 50081/comment 15). Note that + # these must also be disabled in projects that use libbutl. + # + cxx.coptions += -Wno-maybe-uninitialized -Wno-free-nonheap-object +} # Load the cli module but only if it's available. This way a distribution # that includes pre-generated files can be built without installing cli. diff --git a/libbutl/utility.ixx b/libbutl/utility.ixx index 55c8761..d1c8421 100644 --- a/libbutl/utility.ixx +++ b/libbutl/utility.ixx @@ -342,19 +342,7 @@ namespace butl inline void thread_env (const char* const* v) { - // Disable bogus GCC maybe used uninitialized warning (triggered via the - // use of auto_thread_env). - // -#if defined(__GNUC__) && !defined(__clang__) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" -#endif - thread_env_ = v; - -#if defined(__GNUC__) && !defined(__clang__) -# pragma GCC diagnostic pop -#endif } #endif diff --git a/tests/build/root.build b/tests/build/root.build index bb274d3..de83d12 100644 --- a/tests/build/root.build +++ b/tests/build/root.build @@ -13,6 +13,8 @@ if ($cxx.target.system == 'win32-msvc') if ($cxx.class == 'msvc') cxx.coptions += /wd4251 /wd4275 /wd4800 +elif ($cxx.id == 'gcc') + cxx.coptions += -Wno-maybe-uninitialized -Wno-free-nonheap-object # Every exe{} in this subproject is by default a test. # |