- for some reason the change to c_expr.cpp got lost.

- moved NO_SANITIZE to autosegs.h, because it's the only place where it is used.
This commit is contained in:
Christoph Oelckers 2017-03-08 21:14:21 +01:00
parent b513b32bcf
commit a632fae33f
3 changed files with 14 additions and 16 deletions

View File

@ -35,7 +35,15 @@
#ifndef AUTOSEGS_H
#define AUTOSEGS_H
#include "doomtype.h"
#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
#define REGMARKER(x) (x)
typedef void * const REGINFO;

View File

@ -656,7 +656,7 @@ FProduction *ProdNeqStr (FStringProd *prod1, FStringProd *prod2)
FProduction *ProdXorDbl (FDoubleProd *prod1, FDoubleProd *prod2)
{
return NewDoubleProd ((double)((SQWORD)prod1->Value ^ (SQWORD)prod2->Value));
return NewDoubleProd ((double)((int64_t)prod1->Value ^ (int64_t)prod2->Value));
}
//==========================================================================
@ -667,7 +667,7 @@ FProduction *ProdXorDbl (FDoubleProd *prod1, FDoubleProd *prod2)
FProduction *ProdAndDbl (FDoubleProd *prod1, FDoubleProd *prod2)
{
return NewDoubleProd ((double)((SQWORD)prod1->Value & (SQWORD)prod2->Value));
return NewDoubleProd ((double)((int64_t)prod1->Value & (int64_t)prod2->Value));
}
//==========================================================================
@ -678,7 +678,7 @@ FProduction *ProdAndDbl (FDoubleProd *prod1, FDoubleProd *prod2)
FProduction *ProdOrDbl (FDoubleProd *prod1, FDoubleProd *prod2)
{
return NewDoubleProd ((double)((SQWORD)prod1->Value | (SQWORD)prod2->Value));
return NewDoubleProd ((double)((int64_t)prod1->Value | (int64_t)prod2->Value));
}
//==========================================================================
@ -689,7 +689,7 @@ FProduction *ProdOrDbl (FDoubleProd *prod1, FDoubleProd *prod2)
FProduction *ProdLAndDbl (FDoubleProd *prod1, FDoubleProd *prod2)
{
return NewDoubleProd ((double)((SQWORD)prod1->Value && (SQWORD)prod2->Value));
return NewDoubleProd ((double)((int64_t)prod1->Value && (int64_t)prod2->Value));
}
//==========================================================================
@ -700,7 +700,7 @@ FProduction *ProdLAndDbl (FDoubleProd *prod1, FDoubleProd *prod2)
FProduction *ProdLOrDbl (FDoubleProd *prod1, FDoubleProd *prod2)
{
return NewDoubleProd ((double)((SQWORD)prod1->Value || (SQWORD)prod2->Value));
return NewDoubleProd ((double)((int64_t)prod1->Value || (int64_t)prod2->Value));
}

View File

@ -57,16 +57,6 @@ typedef TMap<int, PClassActor *> 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
#if defined(__GNUC__)
// With versions of GCC newer than 4.2, it appears it was determined that the
// cost of an unaligned pointer on PPC was high enough to add padding to the