blob: 7d023ed322cdcf634e280eba7c65f8a1e99d77c6 [file] [log] [blame]
//===-- dfsan.h -------------------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file is a part of DataFlowSanitizer.
//
// Private DFSan header.
//===----------------------------------------------------------------------===//
#ifndef DFSAN_H
#define DFSAN_H
#include "sanitizer/dfsan_interface.h"
namespace __dfsan {
void InitializeInterceptors();
inline dfsan_label *shadow_for(void *ptr) {
return (dfsan_label *) ((((uintptr_t) ptr) & ~0x700000000000) << 1);
}
inline const dfsan_label *shadow_for(const void *ptr) {
return shadow_for(const_cast<void *>(ptr));
}
struct Flags {
// Whether to warn on unimplemented functions.
bool warn_unimplemented;
// Whether to warn on non-zero labels.
bool warn_nonzero_labels;
};
extern Flags flags_data;
inline Flags &flags() {
return flags_data;
}
} // namespace __dfsan
#endif // DFSAN_H