Index: src/IceASanInstrumentation.h |
diff --git a/src/IceASanInstrumentation.h b/src/IceASanInstrumentation.h |
index e1222b4fff3b95d074dac2a16c44c87b27f4a9d4..2cf5c59cb7549fef67d14a0bc4580fda693a655f 100644 |
--- a/src/IceASanInstrumentation.h |
+++ b/src/IceASanInstrumentation.h |
@@ -31,7 +31,7 @@ class ASanInstrumentation : public Instrumentation { |
ASanInstrumentation &operator=(const ASanInstrumentation &) = delete; |
public: |
- ASanInstrumentation(GlobalContext *Ctx) : Instrumentation(Ctx) {} |
+ ASanInstrumentation(GlobalContext *Ctx) : Instrumentation(Ctx), RzNum(0) {} |
void instrumentGlobals(VariableDeclarationList &Globals) override; |
private: |
@@ -40,13 +40,17 @@ private: |
VariableDeclaration *RzArray, |
SizeT &RzArraySize, |
VariableDeclaration *Global); |
+ InstAlloca *createLocalRz(LoweringContext &Context, SizeT Size, |
+ SizeT Alignment); |
+ void instrumentFuncStart(LoweringContext &Context) override; |
+ void instrumentAlloca(LoweringContext &Context, InstAlloca *Instr) override; |
void instrumentCall(LoweringContext &Context, InstCall *Instr) override; |
void instrumentLoad(LoweringContext &Context, InstLoad *Instr) override; |
void instrumentStore(LoweringContext &Context, InstStore *Instr) override; |
void instrumentAccess(LoweringContext &Context, Operand *Op, SizeT Size); |
void instrumentStart(Cfg *Func) override; |
bool DidInsertRedZones = false; |
- uint32_t RzNum = 0; |
+ std::atomic<uint32_t> RzNum; |
}; |
} // end of namespace Ice |