From a362bdcc1715146752a38487b6facd9433406497 Mon Sep 17 00:00:00 2001 From: BStott Date: Thu, 20 Nov 2025 12:08:53 +0000 Subject: [PATCH] [UBSan] Wrap Location variants in anonymous union --- compiler-rt/lib/ubsan/ubsan_diag.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/compiler-rt/lib/ubsan/ubsan_diag.h b/compiler-rt/lib/ubsan/ubsan_diag.h index c836647c98f3c..d37bc309fdd0a 100644 --- a/compiler-rt/lib/ubsan/ubsan_diag.h +++ b/compiler-rt/lib/ubsan/ubsan_diag.h @@ -37,10 +37,11 @@ class Location { private: LocationKind Kind; - // FIXME: In C++11, wrap these in an anonymous union. - SourceLocation SourceLoc; - MemoryLocation MemoryLoc; - const SymbolizedStack *SymbolizedLoc; // Not owned. + union { + SourceLocation SourceLoc; + MemoryLocation MemoryLoc; + const SymbolizedStack *SymbolizedLoc; // Not owned. + }; public: Location() : Kind(LK_Null) {}