Index: lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp =================================================================== --- lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp +++ lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp @@ -11,6 +11,7 @@ #include "X86AsmInstrumentation.h" #include "X86Operand.h" #include "llvm/ADT/StringExtras.h" +#include "llvm/ADT/Triple.h" #include "llvm/IR/Function.h" #include "llvm/MC/MCContext.h" #include "llvm/MC/MCInst.h" @@ -206,10 +207,14 @@ const MCInst &Inst, SmallVectorImpl &Operands, MCContext &Ctx, const MCInstrInfo &MII, MCStreamer &Out) {} -X86AsmInstrumentation * -CreateX86AsmInstrumentation(const MCTargetOptions &MCOptions, const MCContext &Ctx, - const MCSubtargetInfo &STI) { - if (MCOptions.SanitizeAddress) { +X86AsmInstrumentation* CreateX86AsmInstrumentation( + const MCTargetOptions& MCOptions, + const MCContext& Ctx, + const MCSubtargetInfo& STI) { + // FIXME: remove OS check as soon as asm instrumentation functions from + // compiler-rt are fixed. + Triple T(STI.getTargetTriple()); + if (T.isOSLinux() && MCOptions.SanitizeAddress) { if ((STI.getFeatureBits() & X86::Mode32Bit) != 0) return new X86AddressSanitizer32(STI); if ((STI.getFeatureBits() & X86::Mode64Bit) != 0)