From 9dadc0d9c7551781e8419dbe1cb77694def9b3eb Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Wed, 13 May 2020 10:44:54 -0700 Subject: [PATCH] standard library: remove use of `LLVM.h` in the compatibility Remove the use of the `LLVM.h` forward declarations from the compatibility shims. This allows us to fully isolate the target side from the LLVM namespace ensuring that we prevent ODR violations when LLVM is linked into the same address space. --- stdlib/toolchain/Compatibility50/Overrides.h | 1 - stdlib/toolchain/Compatibility51/Overrides.h | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/stdlib/toolchain/Compatibility50/Overrides.h b/stdlib/toolchain/Compatibility50/Overrides.h index e0c38c484149e..5dc5caa290749 100644 --- a/stdlib/toolchain/Compatibility50/Overrides.h +++ b/stdlib/toolchain/Compatibility50/Overrides.h @@ -14,7 +14,6 @@ // //===----------------------------------------------------------------------===// -#include "swift/Basic/LLVM.h" #include "swift/Runtime/Metadata.h" namespace swift { diff --git a/stdlib/toolchain/Compatibility51/Overrides.h b/stdlib/toolchain/Compatibility51/Overrides.h index abecfb200078c..c29c7e89b4735 100644 --- a/stdlib/toolchain/Compatibility51/Overrides.h +++ b/stdlib/toolchain/Compatibility51/Overrides.h @@ -14,20 +14,20 @@ // //===----------------------------------------------------------------------===// -#include "swift/Basic/LLVM.h" #include "swift/Runtime/Metadata.h" +#include "llvm/ADT/StringRef.h" namespace swift { using ConformsToSwiftProtocol_t = const ProtocolConformanceDescriptor *(const Metadata * const type, const ProtocolDescriptor *protocol, - StringRef moduleName); + llvm::StringRef moduleName); const ProtocolConformanceDescriptor * swift51override_conformsToSwiftProtocol(const Metadata * const type, const ProtocolDescriptor *protocol, - StringRef moduleName, + llvm::StringRef moduleName, ConformsToSwiftProtocol_t *original); } // end namespace swift