Skip to content

Commit 0834274

Browse files
authored
Merge pull request #7797 from tautschnig/features/gcc12
Work around further spurious GCC12 maybe-uninitialized warnings
2 parents eb20424 + 85cb526 commit 0834274

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

src/goto-instrument/unwindset.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,13 @@ void unwindsett::parse_unwindset_one_loop(
3636
if(val.empty())
3737
return;
3838

39+
// Work around spurious GCC 12 warning about thread_nr being uninitialised.
40+
#pragma GCC diagnostic push
41+
#ifndef __clang__
42+
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
43+
#endif
3944
optionalt<unsigned> thread_nr;
45+
#pragma GCC diagnostic pop
4046
if(isdigit(val[0]))
4147
{
4248
auto c_pos = val.find(':');
@@ -157,7 +163,13 @@ void unwindsett::parse_unwindset_one_loop(
157163
return;
158164
}
159165
else
166+
// Work around spurious GCC 12 warning about thread_nr being uninitialised.
167+
#pragma GCC diagnostic push
168+
#ifndef __clang__
169+
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
170+
#endif
160171
id = function_id + "." + std::to_string(*nr);
172+
#pragma GCC diagnostic pop
161173
}
162174
}
163175

src/util/cmdline.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,13 @@ bool cmdlinet::parse_arguments(int argc, const char **argv)
296296
return true;
297297
}
298298

299+
// Work around spurious GCC 12 warning about optnr being uninitialised.
300+
#pragma GCC diagnostic push
301+
#ifndef __clang__
302+
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
303+
#endif
299304
options[*optnr].isset = true;
305+
#pragma GCC diagnostic pop
300306

301307
if(options[*optnr].hasval)
302308
{

src/util/simplify_expr_int.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,12 @@ static bool mul_expr(
159159
return true;
160160
}
161161

162+
// Work around spurious GCC 12 warning about c_sizeof_type being
163+
// uninitialised in its destructor (!).
164+
#pragma GCC diagnostic push
165+
#ifndef __clang__
166+
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
167+
#endif
162168
simplify_exprt::resultt<> simplify_exprt::simplify_mult(const mult_exprt &expr)
163169
{
164170
// check to see if it is a number type
@@ -270,6 +276,7 @@ simplify_exprt::resultt<> simplify_exprt::simplify_mult(const mult_exprt &expr)
270276
return std::move(tmp);
271277
}
272278
}
279+
#pragma GCC diagnostic pop
273280

274281
simplify_exprt::resultt<> simplify_exprt::simplify_div(const div_exprt &expr)
275282
{

0 commit comments

Comments
 (0)