1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00

[ADT] Replace a member initializer of a union with an explicit

constructor.

This breaking an old/weird host compiler is my best bet for the current
crashes I'm getting from bots since this functionality was added to this
ADT.

llvm-svn: 339975
This commit is contained in:
Chandler Carruth 2018-08-17 01:10:33 +00:00
parent 3316b3f538
commit 192f103b34

View File

@ -80,8 +80,12 @@ template <typename TagT, typename... MemberTs> class PointerSumType {
// when we *read* a value, we copy the underlying storage out to avoid relying
// on one member or the other being active.
union StorageT {
// Ensure we get a null default constructed value.
uintptr_t Value = 0;
// Ensure we get a null default constructed value. We don't use a member
// initializer because some compilers seem to not implement those correctly
// for a union.
StorageT() : Value(0) {}
uintptr_t Value;
typename HelperT::template Lookup<HelperT::MinTag>::PointerT MinTagPointer;
};