mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 19:12:56 +02:00
[asan] Disable asm instrumentation on unsupported platforms.
Only emit calls to compiler-rt asm routines on platforms where they are present (currently limited to linux i386/x86_64). Patch by Yuri Gorshenin. llvm-svn: 207651
This commit is contained in:
parent
1fc8f4166c
commit
fdf3d359e7
@ -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"
|
||||
@ -207,9 +208,11 @@ void X86AsmInstrumentation::InstrumentInstruction(
|
||||
MCContext &Ctx, const MCInstrInfo &MII, MCStreamer &Out) {}
|
||||
|
||||
X86AsmInstrumentation *
|
||||
CreateX86AsmInstrumentation(const MCTargetOptions &MCOptions, const MCContext &Ctx,
|
||||
const MCSubtargetInfo &STI) {
|
||||
if (MCOptions.SanitizeAddress) {
|
||||
CreateX86AsmInstrumentation(const MCTargetOptions &MCOptions,
|
||||
const MCContext &Ctx, const MCSubtargetInfo &STI) {
|
||||
Triple T(STI.getTargetTriple());
|
||||
const bool hasCompilerRTSupport = T.isOSLinux();
|
||||
if (hasCompilerRTSupport && MCOptions.SanitizeAddress) {
|
||||
if ((STI.getFeatureBits() & X86::Mode32Bit) != 0)
|
||||
return new X86AddressSanitizer32(STI);
|
||||
if ((STI.getFeatureBits() & X86::Mode64Bit) != 0)
|
||||
|
Loading…
Reference in New Issue
Block a user