Enable running when built with Clang's -fsanitize=address

This commit is contained in:
Randy Heit 2016-02-05 14:19:14 -06:00
parent 0a8f41609d
commit 8a9b56978b
3 changed files with 15 additions and 3 deletions

View file

@ -35,6 +35,8 @@
#ifndef AUTOSEGS_H
#define AUTOSEGS_H
#include "doomtype.h"
#define REGMARKER(x) (x)
typedef void *REGINFO;
@ -76,11 +78,11 @@ class FAutoSegIterator
}
Probe = Head;
}
REGINFO operator*() const
REGINFO operator*() const NO_SANITIZE
{
return *Probe;
}
FAutoSegIterator &operator++()
FAutoSegIterator &operator++() NO_SANITIZE
{
do
{

View file

@ -47,7 +47,7 @@ bool PClass::bShutdown;
// A harmless non-NULL FlatPointer for classes without pointers.
static const size_t TheEnd = ~(size_t)0;
static int STACK_ARGS cregcmp (const void *a, const void *b)
static int STACK_ARGS cregcmp (const void *a, const void *b) NO_SANITIZE
{
// VC++ introduces NULLs in the sequence. GCC seems to work as expected and not do it.
const ClassReg *class1 = *(const ClassReg **)a;

View file

@ -113,6 +113,16 @@ typedef TMap<int, const PClass *> FClassMap;
#define NOVTABLE
#endif
#if defined(__clang__)
#if defined(__has_feature) && __has_feature(address_sanitizer))
#define NO_SANITIZE __attribute__((no_sanitize("address")))
#else
#define NO_SANITIZE
#endif
#else
#define NO_SANITIZE
#endif
#include "basictypes.h"
// Bounding box coordinate storage.