Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes.

Some Include What You Use suggestions were used too.

Use anonymous namespaces in source files.

Differential revision: http://reviews.llvm.org/D18778

llvm-svn: 265454
diff --git a/llvm/lib/Support/APFloat.cpp b/llvm/lib/Support/APFloat.cpp
index a8e14d6..e2debfc 100644
--- a/llvm/lib/Support/APFloat.cpp
+++ b/llvm/lib/Support/APFloat.cpp
@@ -14,14 +14,19 @@
 
 #include "llvm/ADT/APFloat.h"
 #include "llvm/ADT/APSInt.h"
+#include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/FoldingSet.h"
 #include "llvm/ADT/Hashing.h"
+#include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/MathExtras.h"
+#include <algorithm>
+#include <cassert>
+#include <cstdint>
 #include <cstring>
-#include <limits.h>
+#include <limits>
 
 using namespace llvm;
 
@@ -93,18 +98,21 @@
   const unsigned int maxPowerOfFiveExponent = maxExponent + maxPrecision - 1;
   const unsigned int maxPowerOfFiveParts = 2 + ((maxPowerOfFiveExponent * 815)
                                                 / (351 * integerPartWidth));
-}
+
+} // end namespace llvm
+
+namespace {
 
 /* A bunch of private, handy routines.  */
 
-static inline unsigned int
+inline unsigned int
 partCountForBits(unsigned int bits)
 {
   return ((bits) + integerPartWidth - 1) / integerPartWidth;
 }
 
 /* Returns 0U-9U.  Return values >= 10U are not digits.  */
-static inline unsigned int
+inline unsigned int
 decDigitValue(unsigned int c)
 {
   return c - '0';
@@ -115,7 +123,7 @@
 
    If the exponent overflows, returns a large exponent with the
    appropriate sign.  */
-static int
+int
 readExponent(StringRef::iterator begin, StringRef::iterator end)
 {
   bool isNegative;
@@ -159,7 +167,7 @@
 
 /* This is ugly and needs cleaning up, but I don't immediately see
    how whilst remaining safe.  */
-static int
+int
 totalExponent(StringRef::iterator p, StringRef::iterator end,
               int exponentAdjustment)
 {
@@ -208,7 +216,7 @@
   return exponent;
 }
 
-static StringRef::iterator
+StringRef::iterator
 skipLeadingZeroesAndAnyDot(StringRef::iterator begin, StringRef::iterator end,
                            StringRef::iterator *dot)
 {
@@ -249,7 +257,7 @@
   int normalizedExponent;
 };
 
-static void
+void
 interpretDecimal(StringRef::iterator begin, StringRef::iterator end,
                  decimalInfo *D)
 {
@@ -308,7 +316,7 @@
 /* Return the trailing fraction of a hexadecimal number.
    DIGITVALUE is the first hex digit of the fraction, P points to
    the next digit.  */
-static lostFraction
+lostFraction
 trailingHexadecimalFraction(StringRef::iterator p, StringRef::iterator end,
                             unsigned int digitValue)
 {
@@ -339,7 +347,7 @@
 
 /* Return the fraction lost were a bignum truncated losing the least
    significant BITS bits.  */
-static lostFraction
+lostFraction
 lostFractionThroughTruncation(const integerPart *parts,
                               unsigned int partCount,
                               unsigned int bits)
@@ -361,7 +369,7 @@
 }
 
 /* Shift DST right BITS bits noting lost fraction.  */
-static lostFraction
+lostFraction
 shiftRight(integerPart *dst, unsigned int parts, unsigned int bits)
 {
   lostFraction lost_fraction;
@@ -374,7 +382,7 @@
 }
 
 /* Combine the effect of two lost fractions.  */
-static lostFraction
+lostFraction
 combineLostFractions(lostFraction moreSignificant,
                      lostFraction lessSignificant)
 {
@@ -395,7 +403,7 @@
 
    See "How to Read Floating Point Numbers Accurately" by William D
    Clinger.  */
-static unsigned int
+unsigned int
 HUerrBound(bool inexactMultiply, unsigned int HUerr1, unsigned int HUerr2)
 {
   assert(HUerr1 < 2 || HUerr2 < 2 || (HUerr1 + HUerr2 < 8));
@@ -409,7 +417,7 @@
 /* The number of ulps from the boundary (zero, or half if ISNEAREST)
    when the least significant BITS are truncated.  BITS cannot be
    zero.  */
-static integerPart
+integerPart
 ulpsFromBoundary(const integerPart *parts, unsigned int bits, bool isNearest)
 {
   unsigned int count, partBits;
@@ -454,7 +462,7 @@
 
 /* Place pow(5, power) in DST, and return the number of parts used.
    DST must be at least one part larger than size of the answer.  */
-static unsigned int
+unsigned int
 powerOf5(integerPart *dst, unsigned int power)
 {
   static const integerPart firstEightPowers[] = { 1, 5, 25, 125, 625, 3125,
@@ -517,17 +525,17 @@
 
 /* Zero at the end to avoid modular arithmetic when adding one; used
    when rounding up during hexadecimal output.  */
-static const char hexDigitsLower[] = "0123456789abcdef0";
-static const char hexDigitsUpper[] = "0123456789ABCDEF0";
-static const char infinityL[] = "infinity";
-static const char infinityU[] = "INFINITY";
-static const char NaNL[] = "nan";
-static const char NaNU[] = "NAN";
+const char hexDigitsLower[] = "0123456789abcdef0";
+const char hexDigitsUpper[] = "0123456789ABCDEF0";
+const char infinityL[] = "infinity";
+const char infinityU[] = "INFINITY";
+const char NaNL[] = "nan";
+const char NaNU[] = "NAN";
 
 /* Write out an integerPart in hexadecimal, starting with the most
    significant nibble.  Write out exactly COUNT hexdigits, return
    COUNT.  */
-static unsigned int
+unsigned int
 partAsHex (char *dst, integerPart part, unsigned int count,
            const char *hexDigitChars)
 {
@@ -545,7 +553,7 @@
 }
 
 /* Write out an unsigned decimal integer.  */
-static char *
+char *
 writeUnsignedDecimal (char *dst, unsigned int n)
 {
   char buff[40], *p;
@@ -563,7 +571,7 @@
 }
 
 /* Write out a signed decimal integer.  */
-static char *
+char *
 writeSignedDecimal (char *dst, int value)
 {
   if (value < 0) {
@@ -575,6 +583,8 @@
   return dst;
 }
 
+} // end anonymous namespace
+
 /* Constructors.  */
 void
 APFloat::initialize(const fltSemantics *ourSemantics)
@@ -852,11 +862,13 @@
 {
   return semantics.precision;
 }
+
 APFloat::ExponentType
 APFloat::semanticsMaxExponent(const fltSemantics &semantics)
 {
   return semantics.maxExponent;
 }
+
 APFloat::ExponentType
 APFloat::semanticsMinExponent(const fltSemantics &semantics)
 {
@@ -1907,7 +1919,6 @@
   return fs;
 }
 
-
 /* Comparison requires normalized numbers.  */
 APFloat::cmpResult
 APFloat::compare(const APFloat &rhs) const
@@ -2558,14 +2569,16 @@
 
   /* Check whether the normalized exponent is high enough to overflow
      max during the log-rebasing in the max-exponent check below. */
-  } else if (D.normalizedExponent - 1 > INT_MAX / 42039) {
+  } else if (D.normalizedExponent - 1 >
+              std::numeric_limits<int>::max() / 42039) {
     fs = handleOverflow(rounding_mode);
 
   /* If it wasn't, then it also wasn't high enough to overflow max
      during the log-rebasing in the min-exponent check.  Check that it
      won't overflow min in either check, then perform the min-exponent
      check. */
-  } else if (D.normalizedExponent - 1 < INT_MIN / 42039 ||
+  } else if ((D.normalizedExponent - 1 <
+               std::numeric_limits<int>::min() / 42039) ||
              (D.normalizedExponent + 1) * 28738 <=
                8651 * (semantics->minExponent - (int) semantics->precision)) {
     /* Underflow to zero and round.  */
@@ -3219,7 +3232,7 @@
   uint64_t mysignificand2 = i2 & 0xffffffffffffLL;
 
   initialize(&APFloat::IEEEquad);
-  assert(partCount()==2);
+  assert(partCount() == 2);
 
   sign = static_cast<unsigned int>(i2>>63);
   if (myexponent==0 &&
@@ -3485,6 +3498,7 @@
 }
 
 namespace {
+
   void append(SmallVectorImpl<char> &Buffer, StringRef Str) {
     Buffer.append(Str.begin(), Str.end());
   }
@@ -3521,7 +3535,6 @@
     significand = significand.trunc(significand.getActiveBits());
   }
 
-
   void AdjustToPrecision(SmallVectorImpl<char> &buffer,
                          int &exp, unsigned FormatPrecision) {
     unsigned N = buffer.size();
@@ -3566,7 +3579,8 @@
     exp += FirstSignificant;
     buffer.erase(&buffer[0], &buffer[FirstSignificant]);
   }
-}
+
+} // end anonymous namespace
 
 void APFloat::toString(SmallVectorImpl<char> &Str,
                        unsigned FormatPrecision,
diff --git a/llvm/lib/Support/CrashRecoveryContext.cpp b/llvm/lib/Support/CrashRecoveryContext.cpp
index 98865f5..1c5e8d9 100644
--- a/llvm/lib/Support/CrashRecoveryContext.cpp
+++ b/llvm/lib/Support/CrashRecoveryContext.cpp
@@ -8,19 +8,23 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Support/CrashRecoveryContext.h"
+#include "llvm/ADT/STLExtras.h"
 #include "llvm/Config/config.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/ManagedStatic.h"
 #include "llvm/Support/Mutex.h"
 #include "llvm/Support/ThreadLocal.h"
-#include <setjmp.h>
+#include "llvm/Support/Threading.h"
+#include <cassert>
+#include <csetjmp>
+
 using namespace llvm;
 
 namespace {
 
 struct CrashRecoveryContextImpl;
 
-static ManagedStatic<
+ManagedStatic<
     sys::ThreadLocal<const CrashRecoveryContextImpl> > CurrentContext;
 
 struct CrashRecoveryContextImpl {
@@ -42,6 +46,7 @@
     Next = CurrentContext->get();
     CurrentContext->set(this);
   }
+
   ~CrashRecoveryContextImpl() {
     if (!SwitchedThread)
       CurrentContext->set(Next);
@@ -70,14 +75,14 @@
   }
 };
 
-}
+ManagedStatic<sys::Mutex> gCrashRecoveryContextMutex;
+bool gCrashRecoveryEnabled = false;
 
-static ManagedStatic<sys::Mutex> gCrashRecoveryContextMutex;
-static bool gCrashRecoveryEnabled = false;
-
-static ManagedStatic<sys::ThreadLocal<const CrashRecoveryContext>>
+ManagedStatic<sys::ThreadLocal<const CrashRecoveryContext>>
        tlIsRecoveringFromCrash;
 
+} // end anonymous namespace
+
 CrashRecoveryContextCleanup::~CrashRecoveryContextCleanup() {}
 
 CrashRecoveryContext::~CrashRecoveryContext() {
@@ -162,7 +167,9 @@
 // SetUnhandledExceptionFilter API, but there's a risk of that
 // being entirely overwritten (it's not a chain).
 
-static LONG CALLBACK ExceptionHandler(PEXCEPTION_POINTERS ExceptionInfo)
+namespace {
+
+LONG CALLBACK ExceptionHandler(PEXCEPTION_POINTERS ExceptionInfo)
 {
   // Lookup the current thread local recovery object.
   const CrashRecoveryContextImpl *CRCI = CurrentContext->get();
@@ -190,7 +197,9 @@
 // CrashRecoveryContext at all.  So we make use of a thread-local
 // exception table.  The handles contained in here will either be
 // non-NULL, valid VEH handles, or NULL.
-static sys::ThreadLocal<const void> sCurrentExceptionHandle;
+sys::ThreadLocal<const void> sCurrentExceptionHandle;
+
+} // end anonymous namespace
 
 void CrashRecoveryContext::Enable() {
   sys::ScopedLock L(*gCrashRecoveryContextMutex);
@@ -239,14 +248,15 @@
 // reliable fashion -- if we get a signal outside of a crash recovery context we
 // simply disable crash recovery and raise the signal again.
 
-#include <signal.h>
+#include <csignal>
 
-static const int Signals[] =
-    { SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGSEGV, SIGTRAP };
-static const unsigned NumSignals = array_lengthof(Signals);
-static struct sigaction PrevActions[NumSignals];
+namespace {
 
-static void CrashRecoverySignalHandler(int Signal) {
+const int Signals[] = { SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGSEGV, SIGTRAP };
+const unsigned NumSignals = array_lengthof(Signals);
+struct sigaction PrevActions[NumSignals];
+
+void CrashRecoverySignalHandler(int Signal) {
   // Lookup the current thread local recovery object.
   const CrashRecoveryContextImpl *CRCI = CurrentContext->get();
 
@@ -278,6 +288,8 @@
     const_cast<CrashRecoveryContextImpl*>(CRCI)->HandleCrash();
 }
 
+} // end anonymous namespace
+
 void CrashRecoveryContext::Enable() {
   sys::ScopedLock L(*gCrashRecoveryContextMutex);
 
@@ -334,14 +346,16 @@
   CRCI->HandleCrash();
 }
 
+namespace {
+
 // FIXME: Portability.
-static void setThreadBackgroundPriority() {
+void setThreadBackgroundPriority() {
 #ifdef __APPLE__
   setpriority(PRIO_DARWIN_THREAD, 0, PRIO_DARWIN_BG);
 #endif
 }
 
-static bool hasThreadBackgroundPriority() {
+bool hasThreadBackgroundPriority() {
 #ifdef __APPLE__
   return getpriority(PRIO_DARWIN_THREAD, 0) == 1;
 #else
@@ -349,16 +363,14 @@
 #endif
 }
 
-namespace {
 struct RunSafelyOnThreadInfo {
   function_ref<void()> Fn;
   CrashRecoveryContext *CRC;
   bool UseBackgroundPriority;
   bool Result;
 };
-}
 
-static void RunSafelyOnThread_Dispatch(void *UserData) {
+void RunSafelyOnThread_Dispatch(void *UserData) {
   RunSafelyOnThreadInfo *Info =
     reinterpret_cast<RunSafelyOnThreadInfo*>(UserData);
 
@@ -367,6 +379,9 @@
 
   Info->Result = Info->CRC->RunSafely(Info->Fn);
 }
+
+} // end anonymous namespace
+
 bool CrashRecoveryContext::RunSafelyOnThread(function_ref<void()> Fn,
                                              unsigned RequestedStackSize) {
   bool UseBackgroundPriority = hasThreadBackgroundPriority();
diff --git a/llvm/lib/Support/Errno.cpp b/llvm/lib/Support/Errno.cpp
index 3ba2a12..888887c 100644
--- a/llvm/lib/Support/Errno.cpp
+++ b/llvm/lib/Support/Errno.cpp
@@ -14,11 +14,9 @@
 #include "llvm/Support/Errno.h"
 #include "llvm/Config/config.h"     // Get autoconf configuration settings
 #include "llvm/Support/raw_ostream.h"
-#include <string.h>
-
-#if HAVE_ERRNO_H
-#include <errno.h>
-#endif
+#include <cerrno>
+#include <cstring>
+#include <string>
 
 //===----------------------------------------------------------------------===//
 //=== WARNING: Implementation here must contain only TRULY operating system
@@ -32,7 +30,7 @@
 std::string StrError() {
   return StrError(errno);
 }
-#endif  // HAVE_ERRNO_H
+#endif // HAVE_ERRNO_H
 
 std::string StrError(int errnum) {
   std::string str;
@@ -72,5 +70,5 @@
   return str;
 }
 
-}  // namespace sys
-}  // namespace llvm
+} // namespace sys
+} // namespace llvm
diff --git a/llvm/lib/Support/Host.cpp b/llvm/lib/Support/Host.cpp
index 1ca8eac..5962e5e 100644
--- a/llvm/lib/Support/Host.cpp
+++ b/llvm/lib/Support/Host.cpp
@@ -19,8 +19,8 @@
 #include "llvm/Config/config.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/FileSystem.h"
-#include "llvm/Support/raw_ostream.h"
-#include <string.h>
+#include <cstring>
+#include <string>
 
 // Include the platform-specific parts of this class.
 #ifdef LLVM_ON_UNIX
@@ -49,8 +49,10 @@
 
 using namespace llvm;
 
+namespace {
+
 #if defined(__linux__)
-static ssize_t LLVM_ATTRIBUTE_UNUSED readCpuInfo(void *Buf, size_t Size) {
+ssize_t LLVM_ATTRIBUTE_UNUSED readCpuInfo(void *Buf, size_t Size) {
   // Note: We cannot mmap /proc/cpuinfo here and then process the resulting
   // memory buffer because the 'file' has 0 size (it can be read from only
   // as a stream).
@@ -74,8 +76,8 @@
 
 /// GetX86CpuIDAndInfo - Execute the specified cpuid and return the 4 values in the
 /// specified arguments.  If we can't run cpuid on the host, return true.
-static bool GetX86CpuIDAndInfo(unsigned value, unsigned *rEAX, unsigned *rEBX,
-                               unsigned *rECX, unsigned *rEDX) {
+bool GetX86CpuIDAndInfo(unsigned value, unsigned *rEAX, unsigned *rEBX,
+                        unsigned *rECX, unsigned *rEDX) {
 #if defined(__GNUC__) || defined(__clang__)
   #if defined(__x86_64__) || defined(_M_AMD64) || defined (_M_X64)
     // gcc doesn't know cpuid would clobber ebx/rbx. Preseve it manually.
@@ -120,9 +122,8 @@
 /// GetX86CpuIDAndInfoEx - Execute the specified cpuid with subleaf and return the
 /// 4 values in the specified arguments.  If we can't run cpuid on the host,
 /// return true.
-static bool GetX86CpuIDAndInfoEx(unsigned value, unsigned subleaf,
-                                 unsigned *rEAX, unsigned *rEBX, unsigned *rECX,
-                                 unsigned *rEDX) {
+bool GetX86CpuIDAndInfoEx(unsigned value, unsigned subleaf, unsigned *rEAX,
+                          unsigned *rEBX, unsigned *rECX, unsigned *rEDX) {
 #if defined(__x86_64__) || defined(_M_AMD64) || defined (_M_X64)
   #if defined(__GNUC__)
     // gcc doesn't know cpuid would clobber ebx/rbx. Preseve it manually.
@@ -182,7 +183,7 @@
 #endif
 }
 
-static bool GetX86XCR0(unsigned *rEAX, unsigned *rEDX) {
+bool GetX86XCR0(unsigned *rEAX, unsigned *rEDX) {
 #if defined(__GNUC__)
   // Check xgetbv; this uses a .byte sequence instead of the instruction
   // directly because older assemblers do not include support for xgetbv and
@@ -199,8 +200,7 @@
 #endif
 }
 
-static void DetectX86FamilyModel(unsigned EAX, unsigned &Family,
-                                 unsigned &Model) {
+void DetectX86FamilyModel(unsigned EAX, unsigned &Family, unsigned &Model) {
   Family = (EAX >> 8) & 0xf; // Bits 8 - 11
   Model  = (EAX >> 4) & 0xf; // Bits 4 - 7
   if (Family == 6 || Family == 0xf) {
@@ -212,6 +212,8 @@
   }
 }
 
+} // end anonymous namespace
+
 StringRef sys::getHostCPUName() {
   unsigned EAX = 0, EBX = 0, ECX = 0, EDX = 0;
   if (GetX86CpuIDAndInfo(0x1, &EAX, &EBX, &ECX, &EDX))
diff --git a/llvm/lib/Support/MathExtras.cpp b/llvm/lib/Support/MathExtras.cpp
index ba09245..6b9d048 100644
--- a/llvm/lib/Support/MathExtras.cpp
+++ b/llvm/lib/Support/MathExtras.cpp
@@ -1,4 +1,4 @@
-//===-- MathExtras.cpp - Implement the MathExtras header --------------===//
+//===-- MathExtras.cpp - Implement the MathExtras header ------------------===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -16,7 +16,7 @@
 #ifdef _MSC_VER
 #include <limits>
 #else
-#include <math.h>
+#include <cmath>
 #endif
 
 namespace llvm {
@@ -29,4 +29,4 @@
   const float huge_valf = HUGE_VALF;
 #endif
 
-}
+} // end namespace llvm
diff --git a/llvm/lib/Support/Mutex.cpp b/llvm/lib/Support/Mutex.cpp
index c8d3844..db30c73 100644
--- a/llvm/lib/Support/Mutex.cpp
+++ b/llvm/lib/Support/Mutex.cpp
@@ -22,22 +22,26 @@
 #if !defined(LLVM_ENABLE_THREADS) || LLVM_ENABLE_THREADS == 0
 // Define all methods as no-ops if threading is explicitly disabled
 namespace llvm {
+
 using namespace sys;
+
 MutexImpl::MutexImpl( bool recursive) { }
 MutexImpl::~MutexImpl() { }
 bool MutexImpl::acquire() { return true; }
 bool MutexImpl::release() { return true; }
 bool MutexImpl::tryacquire() { return true; }
-}
+
+} // end namespace llvm
 #else
 
 #if defined(HAVE_PTHREAD_H) && defined(HAVE_PTHREAD_MUTEX_LOCK)
 
 #include <cassert>
+#include <cstdlib>
 #include <pthread.h>
-#include <stdlib.h>
 
 namespace llvm {
+
 using namespace sys;
 
 // Construct a Mutex using pthread calls
@@ -110,7 +114,7 @@
   return errorcode == 0;
 }
 
-}
+} // end namespace llvm
 
 #elif defined(LLVM_ON_UNIX)
 #include "Unix/Mutex.inc"
diff --git a/llvm/lib/Support/RWMutex.cpp b/llvm/lib/Support/RWMutex.cpp
index 3b6309c..2a3239a 100644
--- a/llvm/lib/Support/RWMutex.cpp
+++ b/llvm/lib/Support/RWMutex.cpp
@@ -13,7 +13,6 @@
 
 #include "llvm/Config/config.h"
 #include "llvm/Support/RWMutex.h"
-#include <cstring>
 
 //===----------------------------------------------------------------------===//
 //=== WARNING: Implementation here must contain only TRULY operating system
@@ -23,23 +22,27 @@
 #if !defined(LLVM_ENABLE_THREADS) || LLVM_ENABLE_THREADS == 0
 // Define all methods as no-ops if threading is explicitly disabled
 namespace llvm {
+
 using namespace sys;
+
 RWMutexImpl::RWMutexImpl() { }
 RWMutexImpl::~RWMutexImpl() { }
 bool RWMutexImpl::reader_acquire() { return true; }
 bool RWMutexImpl::reader_release() { return true; }
 bool RWMutexImpl::writer_acquire() { return true; }
 bool RWMutexImpl::writer_release() { return true; }
-}
+
+} // end namespace llvm
 #else
 
 #if defined(HAVE_PTHREAD_H) && defined(HAVE_PTHREAD_RWLOCK_INIT)
 
 #include <cassert>
+#include <cstdlib>
 #include <pthread.h>
-#include <stdlib.h>
 
 namespace llvm {
+
 using namespace sys;
 
 // Construct a RWMutex using pthread calls
@@ -113,7 +116,7 @@
   return errorcode == 0;
 }
 
-}
+} // end namespace llvm
 
 #elif defined(LLVM_ON_UNIX)
 #include "Unix/RWMutex.inc"
diff --git a/llvm/lib/Support/SHA1.cpp b/llvm/lib/Support/SHA1.cpp
index 980c3bb..5ff2eed 100644
--- a/llvm/lib/Support/SHA1.cpp
+++ b/llvm/lib/Support/SHA1.cpp
@@ -1,4 +1,4 @@
-//======- SHA1.h - Private copy of the SHA1 implementation ---*- C++ -* ======//
+//===--- SHA1.h - Private copy of the SHA1 implementation -------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -13,12 +13,13 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "llvm/ADT/StringRef.h"
 #include "llvm/Support/Host.h"
 #include "llvm/Support/SHA1.h"
-using namespace llvm;
 
-#include <stdint.h>
-#include <string.h>
+#include <cstring>
+
+using namespace llvm;
 
 #if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && BYTE_ORDER == BIG_ENDIAN
 #define SHA_BIG_ENDIAN
@@ -46,10 +47,14 @@
   InternalState.BufferOffset = 0;
 }
 
-static uint32_t rol32(uint32_t number, uint8_t bits) {
+namespace {
+
+uint32_t rol32(uint32_t number, uint8_t bits) {
   return ((number << bits) | (number >> (32 - bits)));
 }
 
+} // end anonymous namespace
+
 void SHA1::hashBlock() {
   uint8_t i;
   uint32_t a, b, c, d, e, t;
diff --git a/llvm/lib/Support/SearchForAddressOfSpecialSymbol.cpp b/llvm/lib/Support/SearchForAddressOfSpecialSymbol.cpp
index 55f3320..711760b 100644
--- a/llvm/lib/Support/SearchForAddressOfSpecialSymbol.cpp
+++ b/llvm/lib/Support/SearchForAddressOfSpecialSymbol.cpp
@@ -14,10 +14,12 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include <string.h>
+#include <cstring>
+
+namespace {
 
 // Must declare the symbols in the global namespace.
-static void *DoSearch(const char* symbolName) {
+void *DoSearch(const char* symbolName) {
 #define EXPLICIT_SYMBOL(SYM) \
    extern void *SYM; if (!strcmp(symbolName, #SYM)) return &SYM
 
@@ -51,8 +53,12 @@
   return nullptr;
 }
 
+} // end anonymous namespace
+
 namespace llvm {
+
 void *SearchForAddressOfSpecialSymbol(const char* symbolName) {
   return DoSearch(symbolName);
 }
-}  // namespace llvm
+
+} // end namespace llvm
diff --git a/llvm/lib/Support/Unix/Path.inc b/llvm/lib/Support/Unix/Path.inc
index 3cedf64..8d1dfc7 100644
--- a/llvm/lib/Support/Unix/Path.inc
+++ b/llvm/lib/Support/Unix/Path.inc
@@ -17,8 +17,9 @@
 //===----------------------------------------------------------------------===//
 
 #include "Unix.h"
-#include <limits.h>
-#include <stdio.h>
+#include <cassert>
+#include <climits>
+#include <cstdio>
 #if HAVE_SYS_STAT_H
 #include <sys/stat.h>
 #endif
@@ -86,7 +87,10 @@
 #if defined(__FreeBSD__) || defined (__NetBSD__) || defined(__Bitrig__) || \
     defined(__OpenBSD__) || defined(__minix) || defined(__FreeBSD_kernel__) || \
     defined(__linux__) || defined(__CYGWIN__) || defined(__DragonFly__)
-static int
+
+namespace {
+
+int
 test_dir(char ret[PATH_MAX], const char *dir, const char *bin)
 {
   struct stat sb;
@@ -101,7 +105,7 @@
   return 0;
 }
 
-static char *
+char *
 getprogpath(char ret[PATH_MAX], const char *bin)
 {
   char *pv, *s, *t;
@@ -138,6 +142,9 @@
   free(pv);
   return nullptr;
 }
+
+} // end anonymous namespace
+
 #endif // __FreeBSD__ || __NetBSD__ || __FreeBSD_kernel__
 
 /// GetMainExecutable - Return the path to the main executable, given the
@@ -330,7 +337,9 @@
   return std::error_code();
 }
 
-static int convertAccessMode(AccessMode Mode) {
+namespace {
+
+int convertAccessMode(AccessMode Mode) {
   switch (Mode) {
   case AccessMode::Exist:
     return F_OK;
@@ -342,6 +351,8 @@
   llvm_unreachable("invalid enum");
 }
 
+} // end anonymous namespace
+
 std::error_code access(const Twine &Path, AccessMode Mode) {
   SmallString<128> PathStorage;
   StringRef P = Path.toNullTerminatedStringRef(PathStorage);
@@ -381,8 +392,10 @@
   return std::error_code();
 }
 
-static std::error_code fillStatus(int StatRet, const struct stat &Status,
-                             file_status &Result) {
+namespace {
+
+std::error_code fillStatus(int StatRet, const struct stat &Status,
+                           file_status &Result) {
   if (StatRet != 0) {
     std::error_code ec(errno, std::generic_category());
     if (ec == errc::no_such_file_or_directory)
@@ -416,6 +429,8 @@
   return std::error_code();
 }
 
+} // end anonymous namespace
+
 std::error_code status(const Twine &Path, file_status &Result) {
   SmallString<128> PathStorage;
   StringRef P = Path.toNullTerminatedStringRef(PathStorage);
@@ -597,7 +612,9 @@
   return false;
 }
 
-static bool getDarwinConfDir(bool TempDir, SmallVectorImpl<char> &Result) {
+namespace {
+
+bool getDarwinConfDir(bool TempDir, SmallVectorImpl<char> &Result) {
   #if defined(_CS_DARWIN_USER_TEMP_DIR) && defined(_CS_DARWIN_USER_CACHE_DIR)
   // On Darwin, use DARWIN_USER_TEMP_DIR or DARWIN_USER_CACHE_DIR.
   // macros defined in <unistd.h> on darwin >= 9
@@ -622,7 +639,7 @@
   return false;
 }
 
-static bool getUserCacheDir(SmallVectorImpl<char> &Result) {
+bool getUserCacheDir(SmallVectorImpl<char> &Result) {
   // First try using XDG_CACHE_HOME env variable,
   // as specified in XDG Base Directory Specification at
   // http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
@@ -645,7 +662,7 @@
   return false;
 }
 
-static const char *getEnvTempDir() {
+const char *getEnvTempDir() {
   // Check whether the temporary directory is specified by an environment
   // variable.
   const char *EnvironmentVariables[] = {"TMPDIR", "TMP", "TEMP", "TEMPDIR"};
@@ -657,7 +674,7 @@
   return nullptr;
 }
 
-static const char *getDefaultTempDir(bool ErasedOnReboot) {
+const char *getDefaultTempDir(bool ErasedOnReboot) {
 #ifdef P_tmpdir
   if ((bool)P_tmpdir)
     return P_tmpdir;
@@ -668,6 +685,8 @@
   return "/var/tmp";
 }
 
+} // end anonymous namespace
+
 void system_temp_directory(bool ErasedOnReboot, SmallVectorImpl<char> &Result) {
   Result.clear();
 
diff --git a/llvm/lib/Support/Unix/Process.inc b/llvm/lib/Support/Unix/Process.inc
index cad81f8..350b145 100644
--- a/llvm/lib/Support/Unix/Process.inc
+++ b/llvm/lib/Support/Unix/Process.inc
@@ -30,9 +30,7 @@
 #ifdef HAVE_SYS_STAT_H
 #include <sys/stat.h>
 #endif
-#if HAVE_SIGNAL_H
-#include <signal.h>
-#endif
+#include <csignal>
 // DragonFlyBSD, OpenBSD, and Bitrig have deprecated <malloc.h> for
 // <stdlib.h> instead. Unix.h includes this for us already.
 #if defined(HAVE_MALLOC_H) && !defined(__DragonFly__) && \
@@ -60,7 +58,9 @@
 using namespace llvm;
 using namespace sys;
 
-static std::pair<TimeValue, TimeValue> getRUsageTimes() {
+namespace {
+
+std::pair<TimeValue, TimeValue> getRUsageTimes() {
 #if defined(HAVE_GETRUSAGE)
   struct rusage RU;
   ::getrusage(RUSAGE_SELF, &RU);
@@ -79,6 +79,8 @@
 #endif
 }
 
+} // end anonymous namespace
+
 // On Cygwin, getpagesize() returns 64k(AllocationGranularity) and
 // offset in mmap(3) should be aligned to the AllocationGranularity.
 unsigned Process::getPageSize() {
@@ -189,6 +191,7 @@
 }
 
 namespace {
+
 class FDCloser {
 public:
   FDCloser(int &FD) : FD(FD), KeepOpen(false) {}
@@ -205,7 +208,8 @@
   int &FD;
   bool KeepOpen;
 };
-}
+
+} // end anonymous namespace
 
 std::error_code Process::FixupStandardFileDescriptors() {
   int NullFD = -1;
@@ -300,7 +304,9 @@
 #endif
 }
 
-static unsigned getColumns(int FileID) {
+namespace {
+
+unsigned getColumns(int FileID) {
   // If COLUMNS is defined in the environment, wrap to that many columns.
   if (const char *ColumnsStr = std::getenv("COLUMNS")) {
     int Columns = std::atoi(ColumnsStr);
@@ -320,6 +326,8 @@
   return Columns;
 }
 
+} // end anonymous namespace
+
 unsigned Process::StandardOutColumns() {
   if (!StandardOutIsDisplayed())
     return 0;
@@ -344,11 +352,13 @@
 extern "C" int tigetnum(char *capname);
 #endif
 
+namespace {
+
 #ifdef HAVE_TERMINFO
-static ManagedStatic<sys::Mutex> TermColorMutex;
+ManagedStatic<sys::Mutex> TermColorMutex;
 #endif
 
-static bool terminalHasColors(int fd) {
+bool terminalHasColors(int fd) {
 #ifdef HAVE_TERMINFO
   // First, acquire a global lock because these C routines are thread hostile.
   MutexGuard G(*TermColorMutex);
@@ -388,6 +398,8 @@
   return false;
 }
 
+} // end anonymous namespace
+
 bool Process::FileDescriptorHasColors(int fd) {
   // A file descriptor has colors if it is displayed and the terminal has
   // colors.
@@ -428,7 +440,10 @@
 }
 
 #if !defined(HAVE_DECL_ARC4RANDOM) || !HAVE_DECL_ARC4RANDOM
-static unsigned GetRandomNumberSeed() {
+
+namespace {
+
+unsigned GetRandomNumberSeed() {
   // Attempt to get the initial seed from /dev/urandom, if possible.
   int urandomFD = open("/dev/urandom", O_RDONLY);
 
@@ -450,6 +465,9 @@
   TimeValue Now = TimeValue::now();
   return hash_combine(Now.seconds(), Now.nanoseconds(), ::getpid());
 }
+
+} // end anonymous namespace
+
 #endif
 
 unsigned llvm::sys::Process::GetRandomNumber() {
diff --git a/llvm/lib/Support/Unix/Program.inc b/llvm/lib/Support/Unix/Program.inc
index 7d3537e..ee7df0a 100644
--- a/llvm/lib/Support/Unix/Program.inc
+++ b/llvm/lib/Support/Unix/Program.inc
@@ -1,4 +1,4 @@
-//===- llvm/Support/Unix/Program.cpp -----------------------------*- C++ -*-===//
+//===- llvm/Support/Unix/Program.cpp ----------------------------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -30,9 +30,7 @@
 #if HAVE_SYS_RESOURCE_H
 #include <sys/resource.h>
 #endif
-#if HAVE_SIGNAL_H
-#include <signal.h>
-#endif
+#include <csignal>
 #if HAVE_FCNTL_H
 #include <fcntl.h>
 #endif
@@ -96,7 +94,9 @@
   return errc::no_such_file_or_directory;
 }
 
-static bool RedirectIO(const StringRef *Path, int FD, std::string* ErrMsg) {
+namespace {
+
+bool RedirectIO(const StringRef *Path, int FD, std::string* ErrMsg) {
   if (!Path) // Noop
     return false;
   std::string File;
@@ -125,8 +125,8 @@
 }
 
 #ifdef HAVE_POSIX_SPAWN
-static bool RedirectIO_PS(const std::string *Path, int FD, std::string *ErrMsg,
-                          posix_spawn_file_actions_t *FileActions) {
+bool RedirectIO_PS(const std::string *Path, int FD, std::string *ErrMsg,
+                   posix_spawn_file_actions_t *FileActions) {
   if (!Path) // Noop
     return false;
   const char *File;
@@ -144,10 +144,10 @@
 }
 #endif
 
-static void TimeOutHandler(int Sig) {
+void TimeOutHandler(int Sig) {
 }
 
-static void SetMemoryLimits (unsigned size)
+void SetMemoryLimits (unsigned size)
 {
 #if HAVE_SYS_RESOURCE_H && HAVE_GETRLIMIT && HAVE_SETRLIMIT
   struct rlimit r;
@@ -176,7 +176,9 @@
 #endif
 }
 
-}
+} // end anonymous namespace
+
+} // end namespace llvm
 
 static bool Execute(ProcessInfo &PI, StringRef Program, const char **args,
                     const char **envp, const StringRef **redirects,
@@ -419,12 +421,12 @@
   return WaitResult;
 }
 
-  std::error_code sys::ChangeStdinToBinary(){
+std::error_code sys::ChangeStdinToBinary() {
   // Do nothing, as Unix doesn't differentiate between text and binary.
     return std::error_code();
 }
 
-  std::error_code sys::ChangeStdoutToBinary(){
+std::error_code sys::ChangeStdoutToBinary() {
   // Do nothing, as Unix doesn't differentiate between text and binary.
     return std::error_code();
 }
@@ -466,4 +468,5 @@
   }
   return true;
 }
-}
+
+} // end namespace llvm
diff --git a/llvm/lib/Support/Unix/Signals.inc b/llvm/lib/Support/Unix/Signals.inc
index 061cdb3..8be91cd 100644
--- a/llvm/lib/Support/Unix/Signals.inc
+++ b/llvm/lib/Support/Unix/Signals.inc
@@ -1,4 +1,4 @@
-//===- Signals.cpp - Generic Unix Signals Implementation -----*- C++ -*-===//
+//===- Signals.cpp - Generic Unix Signals Implementation --------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -27,9 +27,7 @@
 #if HAVE_EXECINFO_H
 # include <execinfo.h>         // For backtrace().
 #endif
-#if HAVE_SIGNAL_H
-#include <signal.h>
-#endif
+#include <csignal>
 #if HAVE_SYS_STAT_H
 #include <sys/stat.h>
 #endif
@@ -48,25 +46,27 @@
 
 using namespace llvm;
 
-static RETSIGTYPE SignalHandler(int Sig);  // defined below.
+namespace {
 
-static ManagedStatic<SmartMutex<true> > SignalsMutex;
+RETSIGTYPE SignalHandler(int Sig);  // defined below.
+
+ManagedStatic<SmartMutex<true> > SignalsMutex;
 
 /// InterruptFunction - The function to call if ctrl-c is pressed.
-static void (*InterruptFunction)() = nullptr;
+void (*InterruptFunction)() = nullptr;
 
-static ManagedStatic<std::vector<std::string>> FilesToRemove;
+ManagedStatic<std::vector<std::string>> FilesToRemove;
 
 // IntSigs - Signals that represent requested termination. There's no bug
 // or failure, or if there is, it's not our direct responsibility. For whatever
 // reason, our continued execution is no longer desirable.
-static const int IntSigs[] = {
+const int IntSigs[] = {
   SIGHUP, SIGINT, SIGPIPE, SIGTERM, SIGUSR1, SIGUSR2
 };
 
 // KillSigs - Signals that represent that we have a bug, and our prompt
 // termination has been ordered.
-static const int KillSigs[] = {
+const int KillSigs[] = {
   SIGILL, SIGTRAP, SIGABRT, SIGFPE, SIGBUS, SIGSEGV, SIGQUIT
 #ifdef SIGSYS
   , SIGSYS
@@ -82,14 +82,13 @@
 #endif
 };
 
-static unsigned NumRegisteredSignals = 0;
-static struct {
+unsigned NumRegisteredSignals = 0;
+struct {
   struct sigaction SA;
   int SigNo;
 } RegisteredSignalInfo[array_lengthof(IntSigs) + array_lengthof(KillSigs)];
 
-
-static void RegisterHandler(int Signal) {
+void RegisterHandler(int Signal) {
   assert(NumRegisteredSignals < array_lengthof(RegisteredSignalInfo) &&
          "Out of space for signal handlers!");
 
@@ -106,7 +105,7 @@
   ++NumRegisteredSignals;
 }
 
-static void RegisterHandlers() {
+void RegisterHandlers() {
   // We need to dereference the signals mutex during handler registration so
   // that we force its construction. This is to prevent the first use being
   // during handling an actual signal because you can't safely call new in a
@@ -120,7 +119,7 @@
   for (auto S : KillSigs) RegisterHandler(S);
 }
 
-static void UnregisterHandlers() {
+void UnregisterHandlers() {
   // Restore all of the signal handlers to how they were before we showed up.
   for (unsigned i = 0, e = NumRegisteredSignals; i != e; ++i)
     sigaction(RegisteredSignalInfo[i].SigNo,
@@ -128,12 +127,11 @@
   NumRegisteredSignals = 0;
 }
 
-
 /// RemoveFilesToRemove - Process the FilesToRemove list. This function
 /// should be called with the SignalsMutex lock held.
 /// NB: This must be an async signal safe function. It cannot allocate or free
 /// memory, even in debug builds.
-static void RemoveFilesToRemove() {
+void RemoveFilesToRemove() {
   // Avoid constructing ManagedStatic in the signal handler.
   // If FilesToRemove is not constructed, there are no files to remove.
   if (!FilesToRemove.isConstructed())
@@ -164,7 +162,7 @@
 }
 
 // SignalHandler - The signal handler that runs.
-static RETSIGTYPE SignalHandler(int Sig) {
+RETSIGTYPE SignalHandler(int Sig) {
   // Restore the signal behavior to default, so that the program actually
   // crashes when we return and the signal reissues.  This also ensures that if
   // we crash in our signal handler that the program will terminate immediately
@@ -209,6 +207,8 @@
 #endif
 }
 
+} // end anonymous namespace
+
 void llvm::sys::RunInterruptHandlers() {
   sys::SmartScopedLock<true> Guard(*SignalsMutex);
   RemoveFilesToRemove();
@@ -264,7 +264,9 @@
   const char *main_exec_name;
 };
 
-static int dl_iterate_phdr_cb(dl_phdr_info *info, size_t size, void *arg) {
+namespace {
+
+int dl_iterate_phdr_cb(dl_phdr_info *info, size_t size, void *arg) {
   DlIteratePhdrData *data = (DlIteratePhdrData*)arg;
   const char *name = data->first ? data->main_exec_name : info->dlpi_name;
   data->first = false;
@@ -287,6 +289,8 @@
   return 0;
 }
 
+} // end anonymous namespace
+
 /// If this is an ELF platform, we can find all loaded modules and their virtual
 /// addresses with dl_iterate_phdr.
 static bool findModulesAndOffsets(void **StackTrace, int Depth,
@@ -375,10 +379,14 @@
 #endif
 }
 
-static void PrintStackTraceSignalHandler(void *) {
+namespace {
+
+void PrintStackTraceSignalHandler(void *) {
   PrintStackTrace(llvm::errs());
 }
 
+} // end anonymous namespace
+
 void llvm::sys::DisableSystemDialogsOnCrash() {}
 
 /// PrintStackTraceOnErrorSignal - When an error signal (such as SIGABRT or
@@ -403,9 +411,6 @@
 #endif
 }
 
-
-/***/
-
 // On Darwin, raise sends a signal to the main thread instead of the current
 // thread. This has the unfortunate effect that assert() and abort() will end up
 // bypassing our crash recovery attempts. We work around this for anything in
diff --git a/llvm/lib/Support/Unix/ThreadLocal.inc b/llvm/lib/Support/Unix/ThreadLocal.inc
index 31c3f38..78c694c 100644
--- a/llvm/lib/Support/Unix/ThreadLocal.inc
+++ b/llvm/lib/Support/Unix/ThreadLocal.inc
@@ -19,10 +19,11 @@
 #if defined(HAVE_PTHREAD_H) && defined(HAVE_PTHREAD_GETSPECIFIC)
 
 #include <cassert>
+#include <cstdlib>
 #include <pthread.h>
-#include <stdlib.h>
 
 namespace llvm {
+
 using namespace sys;
 
 ThreadLocalImpl::ThreadLocalImpl() : data() {
@@ -56,14 +57,19 @@
   setInstance(nullptr);
 }
 
-}
+} // end namespace llvm
 #else
+
 namespace llvm {
+
 using namespace sys;
+
 ThreadLocalImpl::ThreadLocalImpl() : data() { }
 ThreadLocalImpl::~ThreadLocalImpl() { }
 void ThreadLocalImpl::setInstance(const void* d) { data = const_cast<void*>(d);}
 void *ThreadLocalImpl::getInstance() { return data; }
 void ThreadLocalImpl::removeInstance() { setInstance(0); }
-}
+
+} // end namespace llvm
+
 #endif
diff --git a/llvm/lib/Support/Unix/Unix.h b/llvm/lib/Support/Unix/Unix.h
index 871e612..832d65b 100644
--- a/llvm/lib/Support/Unix/Unix.h
+++ b/llvm/lib/Support/Unix/Unix.h
@@ -1,4 +1,4 @@
-//===- llvm/Support/Unix/Unix.h - Common Unix Include File -------*- C++ -*-===//
+//===- llvm/Support/Unix/Unix.h - Common Unix Include File ------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -22,7 +22,7 @@
 #include "llvm/Config/config.h"     // Get autoconf configuration settings
 #include "llvm/Support/Errno.h"
 #include <algorithm>
-#include <assert.h>
+#include <cassert>
 #include <cerrno>
 #include <cstdio>
 #include <cstdlib>
@@ -42,7 +42,7 @@
 #ifdef HAVE_SYS_TIME_H
 # include <sys/time.h>
 #endif
-#include <time.h>
+#include <ctime>
 
 #ifdef HAVE_DLFCN_H
 # include <dlfcn.h>
@@ -65,4 +65,4 @@
   return true;
 }
 
-#endif
+#endif // LLVM_LIB_SUPPORT_UNIX_UNIX_H