Turns out UE4 is manually specifying which warnings to treat as errors in WindowsPlatformCompilerSetup.h

Reference From https://answers.unrealengine.com/questions/607946/anonymous-union-with-none-trivial-type.html