forked from OSchip/llvm-project
parent
e077269764
commit
1ee7fc7a1a
|
@ -198,7 +198,7 @@ long double _Complex __divtc3(long double a, long double b,
|
|||
|
||||
// __clear_cache() is used to tell process that new instructions have been
|
||||
// written to an address range. Necessary on processors that do not have
|
||||
// a unified instuction and data cache.
|
||||
// a unified instruction and data cache.
|
||||
void __clear_cache(void* start, void* end);
|
||||
|
||||
// __enable_execute_stack() is used with nested functions when a trampoline
|
||||
|
|
|
@ -39,7 +39,7 @@ typedef __SIZE_TYPE__ size_t;
|
|||
# define __FOPEN_NAME "_fopen"
|
||||
# define __FWRITE_NAME "_fwrite"
|
||||
# else
|
||||
# error "unrecognized architecture for targetting OS X"
|
||||
# error "unrecognized architecture for targeting OS X"
|
||||
# endif
|
||||
#elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
|
||||
# if defined(__i386) || defined (__x86_64)
|
||||
|
@ -51,10 +51,10 @@ typedef __SIZE_TYPE__ size_t;
|
|||
# define __FOPEN_NAME "_fopen"
|
||||
# define __FWRITE_NAME "_fwrite"
|
||||
# else
|
||||
# error "unrecognized architecture for targetting iOS"
|
||||
# error "unrecognized architecture for targeting iOS"
|
||||
# endif
|
||||
#else
|
||||
# error "unrecognized architecture for targetting Darwin"
|
||||
# error "unrecognized architecture for targeting Darwin"
|
||||
#endif
|
||||
|
||||
# define stderr __stderrp
|
||||
|
|
|
@ -35,16 +35,16 @@ char *strncpy(char *, const char *, size_t);
|
|||
# elif defined(__x86_64__) || defined(__arm)
|
||||
# define __STRERROR_NAME "_strerror"
|
||||
# else
|
||||
# error "unrecognized architecture for targetting OS X"
|
||||
# error "unrecognized architecture for targeting OS X"
|
||||
# endif
|
||||
#elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
|
||||
# if defined(__i386) || defined (__x86_64) || defined(__arm)
|
||||
# define __STRERROR_NAME "_strerror"
|
||||
# else
|
||||
# error "unrecognized architecture for targetting iOS"
|
||||
# error "unrecognized architecture for targeting iOS"
|
||||
# endif
|
||||
#else
|
||||
# error "unrecognized architecture for targetting Darwin"
|
||||
# error "unrecognized architecture for targeting Darwin"
|
||||
#endif
|
||||
|
||||
char *strerror(int) __asm(__STRERROR_NAME);
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
# elif defined(__arm)
|
||||
# define __OPEN_NAME "_open"
|
||||
# else
|
||||
# error "unrecognized architecture for targetting OS X"
|
||||
# error "unrecognized architecture for targeting OS X"
|
||||
# endif
|
||||
#elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
|
||||
# if defined(__i386) || defined (__x86_64)
|
||||
|
@ -34,10 +34,10 @@
|
|||
# elif defined(__arm)
|
||||
# define __OPEN_NAME "_open"
|
||||
# else
|
||||
# error "unrecognized architecture for targetting iOS"
|
||||
# error "unrecognized architecture for targeting iOS"
|
||||
# endif
|
||||
#else
|
||||
# error "unrecognized architecture for targetting Darwin"
|
||||
# error "unrecognized architecture for targeting Darwin"
|
||||
#endif
|
||||
|
||||
#define O_RDONLY 0x0000 /* open for reading only */
|
||||
|
@ -45,7 +45,7 @@
|
|||
#define O_RDWR 0x0002 /* open for reading and writing */
|
||||
#define O_ACCMODE 0x0003 /* mask for above modes */
|
||||
|
||||
#define O_CREAT 0x0200 /* create if nonexistant */
|
||||
#define O_CREAT 0x0200 /* create if nonexistent */
|
||||
|
||||
int open(const char *, int, ...) __asm(__OPEN_NAME);
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ using __sanitizer::uptr;
|
|||
extern "C" {
|
||||
// This function should be called at the very beginning of the process,
|
||||
// before any instrumented code is executed and before any call to malloc.
|
||||
// Everytime the asan ABI changes we also change the version number in this
|
||||
// Every time the asan ABI changes we also change the version number in this
|
||||
// name. Objects build with incompatible asan ABI version
|
||||
// will not link with run-time.
|
||||
// Changes between ABI versions:
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
|
||||
// All internal functions in asan reside inside the __asan namespace
|
||||
// to avoid namespace collisions with the user programs.
|
||||
// Seperate namespace also makes it simpler to distinguish the asan run-time
|
||||
// Separate namespace also makes it simpler to distinguish the asan run-time
|
||||
// functions from the instrumented user code in a profile.
|
||||
namespace __asan {
|
||||
|
||||
|
@ -98,7 +98,7 @@ void AppendToErrorMessageBuffer(const char *buffer);
|
|||
|
||||
void ParseExtraActivationFlags();
|
||||
|
||||
// Platfrom-specific options.
|
||||
// Platform-specific options.
|
||||
#if SANITIZER_MAC
|
||||
bool PlatformHasDifferentMemcpyAndMemmove();
|
||||
# define PLATFORM_HAS_DIFFERENT_MEMCPY_AND_MEMMOVE \
|
||||
|
|
|
@ -80,7 +80,7 @@ static const char *MaybeCallAsanDefaultOptions() {
|
|||
return (&__asan_default_options) ? __asan_default_options() : "";
|
||||
}
|
||||
|
||||
static const char *MaybeUseAsanDefaultOptionsCompileDefiniton() {
|
||||
static const char *MaybeUseAsanDefaultOptionsCompileDefinition() {
|
||||
#ifdef ASAN_DEFAULT_OPTIONS
|
||||
// Stringize the macro value.
|
||||
# define ASAN_STRINGIZE(x) #x
|
||||
|
@ -281,7 +281,7 @@ void InitializeFlags(Flags *f, const char *env) {
|
|||
f->detect_container_overflow = true;
|
||||
|
||||
// Override from compile definition.
|
||||
ParseFlagsFromString(f, MaybeUseAsanDefaultOptionsCompileDefiniton());
|
||||
ParseFlagsFromString(f, MaybeUseAsanDefaultOptionsCompileDefinition());
|
||||
|
||||
// Override from user-specified string.
|
||||
ParseFlagsFromString(f, MaybeCallAsanDefaultOptions());
|
||||
|
|
|
@ -123,7 +123,7 @@ FakeStack *AsanThread::AsyncSignalSafeLazyInitFakeStack() {
|
|||
// 1 -- being initialized
|
||||
// ptr -- initialized
|
||||
// This CAS checks if the state was 0 and if so changes it to state 1,
|
||||
// if that was successfull, it initilizes the pointer.
|
||||
// if that was successful, it initializes the pointer.
|
||||
if (atomic_compare_exchange_strong(
|
||||
reinterpret_cast<atomic_uintptr_t *>(&fake_stack_), &old_val, 1UL,
|
||||
memory_order_relaxed)) {
|
||||
|
|
|
@ -101,7 +101,7 @@ __adddf3(fp_t a, fp_t b) {
|
|||
// If a == -b, return +zero.
|
||||
if (aSignificand == 0) return fromRep(0);
|
||||
|
||||
// If partial cancellation occured, we need to left-shift the result
|
||||
// If partial cancellation occurred, we need to left-shift the result
|
||||
// and adjust the exponent:
|
||||
if (aSignificand < implicitBit << 3) {
|
||||
const int shift = rep_clz(aSignificand) - rep_clz(implicitBit << 3);
|
||||
|
|
|
@ -101,7 +101,7 @@ __addsf3(fp_t a, fp_t b) {
|
|||
// If a == -b, return +zero.
|
||||
if (aSignificand == 0) return fromRep(0);
|
||||
|
||||
// If partial cancellation occured, we need to left-shift the result
|
||||
// If partial cancellation occurred, we need to left-shift the result
|
||||
// and adjust the exponent:
|
||||
if (aSignificand < implicitBit << 3) {
|
||||
const int shift = rep_clz(aSignificand) - rep_clz(implicitBit << 3);
|
||||
|
|
|
@ -107,7 +107,7 @@ DEFINE_COMPILERRT_FUNCTION_ALIAS(__nesf2, __eqsf2)
|
|||
|
||||
.p2align 2
|
||||
DEFINE_COMPILERRT_FUNCTION(__gtsf2)
|
||||
// Identical to the preceeding except in that we return -1 for NaN values.
|
||||
// Identical to the preceding except in that we return -1 for NaN values.
|
||||
// Given that the two paths share so much code, one might be tempted to
|
||||
// unify them; however, the extra code needed to do so makes the code size
|
||||
// to performance tradeoff very hard to justify for such small functions.
|
||||
|
|
|
@ -117,7 +117,7 @@ __unorddf2(fp_t a, fp_t b) {
|
|||
return aAbs > infRep || bAbs > infRep;
|
||||
}
|
||||
|
||||
// The following are alternative names for the preceeding routines.
|
||||
// The following are alternative names for the preceding routines.
|
||||
|
||||
COMPILER_RT_ABI enum LE_RESULT
|
||||
__eqdf2(fp_t a, fp_t b) {
|
||||
|
|
|
@ -117,7 +117,7 @@ __unordsf2(fp_t a, fp_t b) {
|
|||
return aAbs > infRep || bAbs > infRep;
|
||||
}
|
||||
|
||||
// The following are alternative names for the preceeding routines.
|
||||
// The following are alternative names for the preceding routines.
|
||||
|
||||
COMPILER_RT_ABI enum LE_RESULT
|
||||
__eqsf2(fp_t a, fp_t b) {
|
||||
|
|
|
@ -112,7 +112,7 @@ COMPILER_RT_ABI int __unordtf2(fp_t a, fp_t b) {
|
|||
return aAbs > infRep || bAbs > infRep;
|
||||
}
|
||||
|
||||
// The following are alternative names for the preceeding routines.
|
||||
// The following are alternative names for the preceding routines.
|
||||
|
||||
COMPILER_RT_ABI enum LE_RESULT __eqtf2(fp_t a, fp_t b) {
|
||||
return __letf2(a, b);
|
||||
|
|
|
@ -98,7 +98,7 @@ __divdf3(fp_t a, fp_t b) {
|
|||
correction32 = -((uint64_t)recip32 * q31b >> 32);
|
||||
recip32 = (uint64_t)recip32 * correction32 >> 31;
|
||||
|
||||
// recip32 might have overflowed to exactly zero in the preceeding
|
||||
// recip32 might have overflowed to exactly zero in the preceding
|
||||
// computation if the high word of b is exactly 1.0. This would sabotage
|
||||
// the full-width final stage of the computation that follows, so we adjust
|
||||
// recip32 downward by one bit.
|
||||
|
|
|
@ -25,7 +25,7 @@ uint64_t __fixtfdi(long double input)
|
|||
|
||||
int64_t result = hibits.x & INT64_C(0x000fffffffffffff); /* mantissa(hi) */
|
||||
result |= INT64_C(0x0010000000000000); /* matissa(hi) with implicit bit */
|
||||
result <<= 10; /* mantissa(hi) with one zero preceeding bit. */
|
||||
result <<= 10; /* mantissa(hi) with one zero preceding bit. */
|
||||
|
||||
const int64_t hiNegationMask = ((int64_t)(hibits.x)) >> 63;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/*===- InstrProfilingPlatformOther.c - Profile data default platfrom ------===*\
|
||||
/*===- InstrProfilingPlatformOther.c - Profile data default platform ------===*\
|
||||
|*
|
||||
|* The LLVM Compiler Infrastructure
|
||||
|*
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
namespace __sanitizer {
|
||||
|
||||
// Concurrent uptr->T hashmap.
|
||||
// T must be a POD type, kSize is preferrably a prime but can be any number.
|
||||
// T must be a POD type, kSize is preferably a prime but can be any number.
|
||||
// Usage example:
|
||||
//
|
||||
// typedef AddrHashMap<uptr, 11> Map;
|
||||
|
|
|
@ -43,7 +43,7 @@ struct DTLS {
|
|||
uptr dtv_size;
|
||||
DTV *dtv; // dtv_size elements, allocated by MmapOrDie.
|
||||
|
||||
// Auxilary fields, don't access them outside sanitizer_tls_get_addr.cc
|
||||
// Auxiliary fields, don't access them outside sanitizer_tls_get_addr.cc
|
||||
uptr last_memalign_size;
|
||||
uptr last_memalign_ptr;
|
||||
};
|
||||
|
|
|
@ -3634,7 +3634,7 @@ def UpdateIncludeState(filename, include_state, io=codecs):
|
|||
io: The io factory to use to read the file. Provided for testability.
|
||||
|
||||
Returns:
|
||||
True if a header was succesfully added. False otherwise.
|
||||
True if a header was successfully added. False otherwise.
|
||||
"""
|
||||
headerfile = None
|
||||
try:
|
||||
|
@ -3706,7 +3706,7 @@ def CheckForIncludeWhatYouUse(filename, clean_lines, include_state, error,
|
|||
# Let's copy the include_state so it is only messed up within this function.
|
||||
include_state = include_state.copy()
|
||||
|
||||
# Did we find the header for this file (if any) and succesfully load it?
|
||||
# Did we find the header for this file (if any) and successfully load it?
|
||||
header_found = False
|
||||
|
||||
# Use the absolute path so that matching works properly.
|
||||
|
|
|
@ -22,10 +22,10 @@ namespace __tsan {
|
|||
struct Flags : CommonFlags, DDFlags {
|
||||
// Enable dynamic annotations, otherwise they are no-ops.
|
||||
bool enable_annotations;
|
||||
// Supress a race report if we've already output another race report
|
||||
// Suppress a race report if we've already output another race report
|
||||
// with the same stack.
|
||||
bool suppress_equal_stacks;
|
||||
// Supress a race report if we've already output another race report
|
||||
// Suppress a race report if we've already output another race report
|
||||
// on the same address.
|
||||
bool suppress_equal_addresses;
|
||||
// Suppress weird race reports that can be seen if JVM is embed
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// ThreadSanitizer atomic operations are based on C++11/C1x standards.
|
||||
// For background see C++11 standard. A slightly older, publically
|
||||
// For background see C++11 standard. A slightly older, publicly
|
||||
// available draft of the standard (not entirely up-to-date, but close enough
|
||||
// for casual browsing) is available here:
|
||||
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf
|
||||
|
|
|
@ -37,7 +37,7 @@ class Mutex {
|
|||
~Mutex();
|
||||
|
||||
void Init();
|
||||
void StaticInit(); // Emulates static initalization (tsan invisible).
|
||||
void StaticInit(); // Emulates static initialization (tsan invisible).
|
||||
void Destroy();
|
||||
void Lock();
|
||||
bool TryLock();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# These are the functions which clang needs when it is targetting a previous
|
||||
# These are the functions which clang needs when it is targeting a previous
|
||||
# version of the OS. The issue is that the backend may use functions which were
|
||||
# not present in the libgcc that shipped on the platform. In such cases, we link
|
||||
# with a version of the library which contains private_extern definitions of all
|
||||
|
@ -62,18 +62,18 @@ UniversalArchs :=
|
|||
Configs += eprintf
|
||||
UniversalArchs.eprintf := $(call CheckArches,i386,eprintf)
|
||||
|
||||
# Configuration for targetting 10.4. We need a few functions missing from
|
||||
# Configuration for targeting 10.4. We need a few functions missing from
|
||||
# libgcc_s.10.4.dylib. We only build x86 slices since clang doesn't really
|
||||
# support targetting PowerPC.
|
||||
# support targeting PowerPC.
|
||||
Configs += 10.4
|
||||
UniversalArchs.10.4 := $(call CheckArches,i386 x86_64,10.4)
|
||||
|
||||
# Configuration for targetting iOS for a couple of functions that didn't
|
||||
# Configuration for targeting iOS for a couple of functions that didn't
|
||||
# make it into libSystem.
|
||||
Configs += ios
|
||||
UniversalArchs.ios := $(call CheckArches,i386 x86_64 x86_64h armv7,ios)
|
||||
|
||||
# Configuration for targetting OSX. These functions may not be in libSystem
|
||||
# Configuration for targeting OSX. These functions may not be in libSystem
|
||||
# so we should provide our own.
|
||||
Configs += osx
|
||||
UniversalArchs.osx := $(call CheckArches,i386 x86_64 x86_64h,osx)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# These are the functions which clang needs when it is targetting a previous
|
||||
# These are the functions which clang needs when it is targeting a previous
|
||||
# version of the OS. The issue is that the backend may use functions which were
|
||||
# not present in the libgcc that shipped on the platform. In such cases, we link
|
||||
# with a version of the library which contains private_extern definitions of all
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
# software floating point).
|
||||
#
|
||||
# This section must define one of:
|
||||
# UniveralArchs - A list of architectures to build for, when using universal build
|
||||
# UniversalArchs - A list of architectures to build for, when using universal build
|
||||
# support (e.g., on Darwin). This should only be used to build fat
|
||||
# libraries, simply building multiple libraries for different
|
||||
# architectures should do so using distinct configs, with the
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Check the presense of interface symbols in the ASan runtime dylib.
|
||||
// Check the presence of interface symbols in the ASan runtime dylib.
|
||||
// If you're changing this file, please also change
|
||||
// ../Linux/interface_symbols.c
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Check the presense of interface symbols in compiled file.
|
||||
// Check the presence of interface symbols in compiled file.
|
||||
|
||||
// RUN: %clang_asan -O2 %s -o %t.exe
|
||||
// RUN: nm -D %t.exe | grep " T " | sed "s/.* T //" \
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
// (i.e. if we can unwind through a function compiled w/o frame pointers).
|
||||
// https://code.google.com/p/address-sanitizer/issues/detail?id=137
|
||||
|
||||
// Fast unwinder is only avaliable on x86_64 and i386.
|
||||
// Fast unwinder is only available on x86_64 and i386.
|
||||
// REQUIRES: x86_64-supported-target
|
||||
|
||||
// REQUIRES: compiler-rt-optimized
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
// (i.e. if we can unwind through a function compiled w/o frame pointers).
|
||||
// https://code.google.com/p/address-sanitizer/issues/detail?id=137
|
||||
|
||||
// Fast unwinder is only avaliable on x86_64 and i386.
|
||||
// Fast unwinder is only available on x86_64 and i386.
|
||||
// REQUIRES: x86_64-supported-target
|
||||
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -21,7 +21,7 @@ int main(int argc, const char *argv[]) {
|
|||
}
|
||||
int foo(int X) {
|
||||
// There should be no profiling information for @foo, since it was called
|
||||
// after the profile was written (and the atexit was supressed by defining
|
||||
// after the profile was written (and the atexit was suppressed by defining
|
||||
// profile_runtime).
|
||||
// CHECK-LABEL: define i32 @foo
|
||||
// CHECK: br i1 %{{.*}}, label %{{.*}}, label %{{[^,]+$}}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test the behavior of malloc/calloc/realloc when the allocation size is huge.
|
||||
// By default (allocator_may_return_null=0) the process shoudl crash.
|
||||
// By default (allocator_may_return_null=0) the process should crash.
|
||||
// With allocator_may_return_null=1 the allocator should return 0.
|
||||
//
|
||||
// RUN: %clangxx_tsan -O0 %s -o %t
|
||||
|
|
Loading…
Reference in New Issue