Add missing call to `Symbolizer::LateInitialize()` in UBSan's standalone init.
authorDan Liew <dan@su-root.co.uk>
Tue, 21 Apr 2020 01:27:43 +0000 (18:27 -0700)
committerDan Liew <dan@su-root.co.uk>
Wed, 22 Apr 2020 01:43:33 +0000 (18:43 -0700)
commit564530e50ad4870801a2080a08645cc1cc2df805
tree0086b8220283af1289b260960b00dea39f35cec7
parent4ca2cad947d09ba0402f5b85d165aa7fcfbd9e3e
Add missing call to `Symbolizer::LateInitialize()` in UBSan's standalone init.

Summary:
This fixes symbolization in Standalone UBSan mode for the Darwin simulators.

861b69faee5df8d4e13ef316c7474a10e4069e81 (rdar://problem/58789439) tried to fix
symbolization for all sanitizers on Darwin simulators but unfortunately it only
fixed the problem for TSan.

For UBSan in standalone mode the fix wasn't sufficient because UBSan's
standalone init doesn't call `Symbolizer::LateInitialize()` like ASan
and TSan do. This meant that `AtosSymbolizerProcess::LateInitialize()`
was never being called before
`AtosSymbolizerProcess::StartSymbolizerSubprocess()` which breaks an
invariant we expect to hold.

The missing call to `Symbolizer::LateInitialize()` during UBSan's
standalone init seems like an accidently omission so this patch simply
adds it.

rdar://problem/62083617

Reviewers: vitalybuka, kubamracek, yln, samsonov

Subscribers: #sanitizers, llvm-commits

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D78530
compiler-rt/lib/ubsan/ubsan_init.cpp