Commit c00568f3 by Gustavo Romero Committed by Jakub Jelinek

selftest: Work around GCC 4.2 PR33916 bug by optimizing the ctor [PR89494]

GCC 4.2 due to PR33916 miscompiles temp_dump_context ctor, because it doesn't
zero initialize the whole dump_context temporary on which it runs the static
get method and during destruction of the temporary an uninitialized pointer
is deleted.

More recent GCC versions properly zero initialize it and ideally optimize away
the construction/destruction of the temporary, as it isn't used for anything,
but there is no reason to create the temporary, static member functions can
be called without an associated object.

2020-04-15  Gustavo Romero  <gromero@linux.ibm.com>

	PR bootstrap/89494
	* dumpfile.c (selftest::temp_dump_context::temp_dump_context):
	Don't construct a dump_context temporary to call static method.
parent 8a4436d8
2020-04-15 Gustavo Romero <gromero@linux.ibm.com>
PR bootstrap/89494
* dumpfile.c (selftest::temp_dump_context::temp_dump_context):
Don't construct a dump_context temporary to call static method.
2020-04-15 Andrea Corallo <andrea.corallo@arm.com>
* config/aarch64/falkor-tag-collision-avoidance.c
......
......@@ -2076,7 +2076,7 @@ temp_dump_context::temp_dump_context (bool forcibly_enable_optinfo,
bool forcibly_enable_dumping,
dump_flags_t test_pp_flags)
: m_context (),
m_saved (&dump_context ().get ())
m_saved (&dump_context::get ())
{
dump_context::s_current = &m_context;
if (forcibly_enable_optinfo)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment