diff --git a/src/goto-instrument/unwindset.cpp b/src/goto-instrument/unwindset.cpp index 982cc51b1da..8c73f15d1cb 100644 --- a/src/goto-instrument/unwindset.cpp +++ b/src/goto-instrument/unwindset.cpp @@ -36,7 +36,13 @@ void unwindsett::parse_unwindset_one_loop( if(val.empty()) return; +// Work around spurious GCC 12 warning about thread_nr being uninitialised. +#pragma GCC diagnostic push +#ifndef __clang__ +# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif optionalt thread_nr; +#pragma GCC diagnostic pop if(isdigit(val[0])) { auto c_pos = val.find(':'); @@ -157,7 +163,13 @@ void unwindsett::parse_unwindset_one_loop( return; } else +// Work around spurious GCC 12 warning about thread_nr being uninitialised. +#pragma GCC diagnostic push +#ifndef __clang__ +# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif id = function_id + "." + std::to_string(*nr); +#pragma GCC diagnostic pop } } diff --git a/src/util/cmdline.cpp b/src/util/cmdline.cpp index 84530430ae1..fe9ee544680 100644 --- a/src/util/cmdline.cpp +++ b/src/util/cmdline.cpp @@ -296,7 +296,13 @@ bool cmdlinet::parse_arguments(int argc, const char **argv) return true; } + // Work around spurious GCC 12 warning about optnr being uninitialised. +#pragma GCC diagnostic push +#ifndef __clang__ +# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif options[*optnr].isset = true; +#pragma GCC diagnostic pop if(options[*optnr].hasval) { diff --git a/src/util/simplify_expr_int.cpp b/src/util/simplify_expr_int.cpp index 3d132ca47fa..5096db9a3bf 100644 --- a/src/util/simplify_expr_int.cpp +++ b/src/util/simplify_expr_int.cpp @@ -159,6 +159,12 @@ static bool mul_expr( return true; } +// Work around spurious GCC 12 warning about c_sizeof_type being +// uninitialised in its destructor (!). +#pragma GCC diagnostic push +#ifndef __clang__ +# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif simplify_exprt::resultt<> simplify_exprt::simplify_mult(const mult_exprt &expr) { // check to see if it is a number type @@ -270,6 +276,7 @@ simplify_exprt::resultt<> simplify_exprt::simplify_mult(const mult_exprt &expr) return std::move(tmp); } } +#pragma GCC diagnostic pop simplify_exprt::resultt<> simplify_exprt::simplify_div(const div_exprt &expr) {