OSDN Git Service

Inserted local redzones.
[android-x86/external-swiftshader.git] / src / IceASanInstrumentation.h
index e1222b4..2cf5c59 100644 (file)
@@ -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