| Index: src/IceASanInstrumentation.h
|
| diff --git a/src/IceASanInstrumentation.h b/src/IceASanInstrumentation.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ee20e7d027c04cda6dfadd64bf51eb491073cf73
|
| --- /dev/null
|
| +++ b/src/IceASanInstrumentation.h
|
| @@ -0,0 +1,48 @@
|
| +//===- subzero/src/IceASanInstrumentation.h - AddressSanitizer --*- C++ -*-===//
|
| +//
|
| +// The Subzero Code Generator
|
| +//
|
| +// This file is distributed under the University of Illinois Open Source
|
| +// License. See LICENSE.TXT for details.
|
| +//
|
| +//===----------------------------------------------------------------------===//
|
| +///
|
| +/// \file
|
| +/// \brief Declares the AddressSanitizer instrumentation class.
|
| +///
|
| +/// This class is responsible for inserting redzones around global and stack
|
| +/// variables, inserting code responsible for poisoning those redzones, and
|
| +/// performing any other instrumentation necessary to implement
|
| +/// AddressSanitizer.
|
| +///
|
| +//===----------------------------------------------------------------------===//
|
| +
|
| +#ifndef SUBZERO_SRC_ICEASANINSTRUMENTATION_H
|
| +#define SUBZERO_SRC_ICEASANINSTRUMENTATION_H
|
| +
|
| +#include "IceGlobalInits.h"
|
| +#include "IceInstrumentation.h"
|
| +
|
| +namespace Ice {
|
| +
|
| +class ASanInstrumentation : public Instrumentation {
|
| + ASanInstrumentation() = delete;
|
| + ASanInstrumentation(const ASanInstrumentation &) = delete;
|
| + ASanInstrumentation &operator=(const ASanInstrumentation &) = delete;
|
| +
|
| +public:
|
| + ASanInstrumentation(GlobalContext *Ctx) : Instrumentation(Ctx) {}
|
| + void instrumentGlobals(VariableDeclarationList &Globals) override;
|
| +
|
| +private:
|
| + std::string nextRzName();
|
| + VariableDeclaration *createRz(VariableDeclarationList *List,
|
| + VariableDeclaration *RzArray,
|
| + SizeT &RzArraySize,
|
| + VariableDeclaration *Global);
|
| + bool DidInsertRedZones = false;
|
| + uint32_t RzNum = 0;
|
| +};
|
| +} // end of namespace Ice
|
| +
|
| +#endif // SUBZERO_SRC_ICEASANINSTRUMENTATION_H
|
|
|