diff --git a/include/llvm/Analysis/TargetLibraryInfo.def b/include/llvm/Analysis/TargetLibraryInfo.def index 393e9d6..892e178 100644 --- a/include/llvm/Analysis/TargetLibraryInfo.def +++ b/include/llvm/Analysis/TargetLibraryInfo.def @@ -445,9 +445,6 @@ TLI_DEFINE_STRING_INTERNAL("fmodl") /// FILE *fopen(const char *filename, const char *mode); TLI_DEFINE_ENUM_INTERNAL(fopen) TLI_DEFINE_STRING_INTERNAL("fopen") -/// FILE *fopen64(const char *filename, const char *opentype) -TLI_DEFINE_ENUM_INTERNAL(fopen64) -TLI_DEFINE_STRING_INTERNAL("fopen64") /// int fprintf(FILE *stream, const char *format, ...); TLI_DEFINE_ENUM_INTERNAL(fprintf) TLI_DEFINE_STRING_INTERNAL("fprintf") @@ -481,9 +478,6 @@ TLI_DEFINE_STRING_INTERNAL("fseek") /// int fseeko(FILE *stream, off_t offset, int whence); TLI_DEFINE_ENUM_INTERNAL(fseeko) TLI_DEFINE_STRING_INTERNAL("fseeko") -/// int fseeko64(FILE *stream, off64_t offset, int whence) -TLI_DEFINE_ENUM_INTERNAL(fseeko64) -TLI_DEFINE_STRING_INTERNAL("fseeko64") /// int fsetpos(FILE *stream, const fpos_t *pos); TLI_DEFINE_ENUM_INTERNAL(fsetpos) TLI_DEFINE_STRING_INTERNAL("fsetpos") @@ -505,9 +499,6 @@ TLI_DEFINE_STRING_INTERNAL("ftell") /// off_t ftello(FILE *stream); TLI_DEFINE_ENUM_INTERNAL(ftello) TLI_DEFINE_STRING_INTERNAL("ftello") -/// off64_t ftello64(FILE *stream) -TLI_DEFINE_ENUM_INTERNAL(ftello64) -TLI_DEFINE_STRING_INTERNAL("ftello64") /// int ftrylockfile(FILE *file); TLI_DEFINE_ENUM_INTERNAL(ftrylockfile) TLI_DEFINE_STRING_INTERNAL("ftrylockfile") @@ -969,9 +960,6 @@ TLI_DEFINE_STRING_INTERNAL("times") /// FILE *tmpfile(void); TLI_DEFINE_ENUM_INTERNAL(tmpfile) TLI_DEFINE_STRING_INTERNAL("tmpfile") -/// FILE *tmpfile64(void) -TLI_DEFINE_ENUM_INTERNAL(tmpfile64) -TLI_DEFINE_STRING_INTERNAL("tmpfile64") /// int toascii(int c); TLI_DEFINE_ENUM_INTERNAL(toascii) TLI_DEFINE_STRING_INTERNAL("toascii") diff --git a/lib/Analysis/TargetLibraryInfo.cpp b/lib/Analysis/TargetLibraryInfo.cpp index 845ca05..b94f92b 100644 --- a/lib/Analysis/TargetLibraryInfo.cpp +++ b/lib/Analysis/TargetLibraryInfo.cpp @@ -369,16 +369,12 @@ static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, TLI.setUnavailable(LibFunc::under_IO_getc); TLI.setUnavailable(LibFunc::under_IO_putc); TLI.setUnavailable(LibFunc::memalign); - TLI.setUnavailable(LibFunc::fopen64); - TLI.setUnavailable(LibFunc::fseeko64); TLI.setUnavailable(LibFunc::fstat64); TLI.setUnavailable(LibFunc::fstatvfs64); - TLI.setUnavailable(LibFunc::ftello64); TLI.setUnavailable(LibFunc::lstat64); TLI.setUnavailable(LibFunc::open64); TLI.setUnavailable(LibFunc::stat64); TLI.setUnavailable(LibFunc::statvfs64); - TLI.setUnavailable(LibFunc::tmpfile64); } TLI.addVectorizableFunctionsFromVecLib(ClVectorLibrary); diff --git a/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp b/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp index ecd9900..597dd56 100644 --- a/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp +++ b/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp @@ -33,7 +33,7 @@ namespace llvm { RTDyldMemoryManager::~RTDyldMemoryManager() {} // Determine whether we can register EH tables. -#if (defined(__GNUC__) && !defined(__ARM_EABI__) && !defined(__ia64__) && \ +#if (defined(__GLIBC__) && !defined(__ARM_EABI__) && !defined(__ia64__) && \ !defined(__SEH__) && !defined(__USING_SJLJ_EXCEPTIONS__)) #define HAVE_EHTABLE_SUPPORT 1 #else diff --git a/lib/Support/DynamicLibrary.cpp b/lib/Support/DynamicLibrary.cpp index 9a7aeb5..2e56a62 100644 --- a/lib/Support/DynamicLibrary.cpp +++ b/lib/Support/DynamicLibrary.cpp @@ -143,7 +143,7 @@ void* DynamicLibrary::SearchForAddressOfSymbol(const char *symbolName) { // On linux we have a weird situation. The stderr/out/in symbols are both // macros and global variables because of standards requirements. So, we // boldly use the EXPLICIT_SYMBOL macro without checking for a #define first. -#if defined(__linux__) and !defined(__ANDROID__) +#if defined(__GLIBC__) { EXPLICIT_SYMBOL(stderr); EXPLICIT_SYMBOL(stdout); diff --git a/lib/Support/Unix/Signals.inc b/lib/Support/Unix/Signals.inc index de98d4a..aa749de 100644 --- a/lib/Support/Unix/Signals.inc +++ b/lib/Support/Unix/Signals.inc @@ -316,7 +316,7 @@ static bool findModulesAndOffsets(void **StackTrace, int Depth, // On glibc systems we have the 'backtrace' function, which works nicely, but // doesn't demangle symbols. void llvm::sys::PrintStackTrace(raw_ostream &OS) { -#if defined(HAVE_BACKTRACE) && defined(ENABLE_BACKTRACES) +#if defined(__GLIBC__) && defined(HAVE_BACKTRACE) && defined(ENABLE_BACKTRACES) static void* StackTrace[256]; // Use backtrace() to output a backtrace on Linux systems with glibc. int depth = backtrace(StackTrace, diff --git a/lib/Transforms/IPO/FunctionAttrs.cpp b/lib/Transforms/IPO/FunctionAttrs.cpp index 351809d..ee3dc99 100644 --- a/lib/Transforms/IPO/FunctionAttrs.cpp +++ b/lib/Transforms/IPO/FunctionAttrs.cpp @@ -1721,31 +1721,6 @@ static bool inferPrototypeAttributes(Function &F, const TargetLibraryInfo &TLI) setOnlyReadsMemory(F, 1); setOnlyReadsMemory(F, 2); break; - case LibFunc::fopen64: - if (FTy->getNumParams() != 2 || !FTy->getReturnType()->isPointerTy() || - !FTy->getParamType(0)->isPointerTy() || - !FTy->getParamType(1)->isPointerTy()) - return false; - setDoesNotThrow(F); - setDoesNotAlias(F, 0); - setDoesNotCapture(F, 1); - setDoesNotCapture(F, 2); - setOnlyReadsMemory(F, 1); - setOnlyReadsMemory(F, 2); - break; - case LibFunc::fseeko64: - case LibFunc::ftello64: - if (FTy->getNumParams() == 0 || !FTy->getParamType(0)->isPointerTy()) - return false; - setDoesNotThrow(F); - setDoesNotCapture(F, 1); - break; - case LibFunc::tmpfile64: - if (!FTy->getReturnType()->isPointerTy()) - return false; - setDoesNotThrow(F); - setDoesNotAlias(F, 0); - break; case LibFunc::fstat64: case LibFunc::fstatvfs64: if (FTy->getNumParams() != 2 || !FTy->getParamType(1)->isPointerTy()) diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc index 5780764..9f2bdca 100644 --- a/utils/unittest/googletest/src/gtest.cc +++ b/utils/unittest/googletest/src/gtest.cc @@ -120,6 +120,7 @@ #if GTEST_CAN_STREAM_RESULTS_ # include // NOLINT +# include # include // NOLINT #endif