From 4c79708a34757b41ec378cb29524c0a0a23fd7ec Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Thu, 4 Dec 2014 23:00:50 +0000 Subject: [PATCH] Revert "Fix UBSan report in StringMap implementation." This reverts commit r223402. Some bots fail with -Winvalid-offsetof warning. llvm-svn: 223407 --- llvm/include/llvm/ADT/StringMap.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/llvm/include/llvm/ADT/StringMap.h b/llvm/include/llvm/ADT/StringMap.h index 06afe84..2feb2ab 100644 --- a/llvm/include/llvm/ADT/StringMap.h +++ b/llvm/include/llvm/ADT/StringMap.h @@ -182,7 +182,10 @@ public: /// GetStringMapEntryFromValue - Given a value that is known to be embedded /// into a StringMapEntry, return the StringMapEntry itself. static StringMapEntry &GetStringMapEntryFromValue(ValueTy &V) { - char *Ptr = reinterpret_cast(&V) - offsetof(StringMapEntry, second); + StringMapEntry *EPtr = 0; + char *Ptr = reinterpret_cast(&V) - + (reinterpret_cast(&EPtr->second) - + reinterpret_cast(EPtr)); return *reinterpret_cast(Ptr); } static const StringMapEntry &GetStringMapEntryFromValue(const ValueTy &V) { -- 2.7.4