| Index: src/IceASanInstrumentation.h
|
| diff --git a/src/IceASanInstrumentation.h b/src/IceASanInstrumentation.h
|
| index ef212f5b6713010c16331db28f6e252f623adc52..f3090ef160f27985518e0a01c9c45493958131db 100644
|
| --- a/src/IceASanInstrumentation.h
|
| +++ b/src/IceASanInstrumentation.h
|
| @@ -26,6 +26,7 @@
|
| namespace Ice {
|
|
|
| using VarSizeMap = std::unordered_map<Operand *, SizeT>;
|
| +using GlobalSizeMap = std::unordered_map<GlobalString, SizeT>;
|
|
|
| class ASanInstrumentation : public Instrumentation {
|
| ASanInstrumentation() = delete;
|
| @@ -41,6 +42,7 @@ public:
|
|
|
| private:
|
| std::string nextRzName();
|
| + bool isOkGlobalAccess(Operand *Op, SizeT Size);
|
| bool isInstrumentable(Cfg *Func) override;
|
| void instrumentFuncStart(LoweringContext &Context) override;
|
| void instrumentCall(LoweringContext &Context, InstCall *Instr) override;
|
| @@ -53,6 +55,7 @@ private:
|
| void finishFunc(Cfg *Func) override;
|
| ICE_TLS_DECLARE_FIELD(VarSizeMap *, LocalVars);
|
| ICE_TLS_DECLARE_FIELD(std::vector<InstCall *> *, LocalDtors);
|
| + GlobalSizeMap GlobalSizes;
|
| std::atomic<uint32_t> RzNum;
|
| bool DidProcessGlobals = false;
|
| SizeT RzGlobalsNum = 0;
|
|
|