Inserted local redzones. BUG=chromium:https://bugs.chromium.org/p/nativeclient/issues/detail?id=4374 R=kschimpf@google.com, stichnot@chromium.org Review URL: https://codereview.chromium.org/2086593002 .
diff --git a/src/IceASanInstrumentation.h b/src/IceASanInstrumentation.h index e1222b4..2cf5c59 100644 --- a/src/IceASanInstrumentation.h +++ b/src/IceASanInstrumentation.h
@@ -31,7 +31,7 @@ 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 @@ 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