aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/root.build7
-rw-r--r--libbutl/utility.ixx12
-rw-r--r--tests/build/root.build2
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.
#