diff --git a/llvm/unittests/ADT/SmallVectorTest.cpp b/llvm/unittests/ADT/SmallVectorTest.cpp
index bf9de88..7367ad4 100644
--- a/llvm/unittests/ADT/SmallVectorTest.cpp
+++ b/llvm/unittests/ADT/SmallVectorTest.cpp
@@ -15,10 +15,8 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/Compiler.h"
 #include "gtest/gtest.h"
-#include <cstdarg>
-#include <cstdlib>
 #include <list>
-#include <utility>
+#include <stdarg.h>
 
 using namespace llvm;
 
@@ -143,10 +141,9 @@
 int Constructable::numMoveAssignmentCalls;
 
 struct NonCopyable {
-  NonCopyable() = default;
-  NonCopyable(NonCopyable &&) = default;
+  NonCopyable() {}
+  NonCopyable(NonCopyable &&) {}
   NonCopyable &operator=(NonCopyable &&) { return *this; }
-
 private:
   NonCopyable(const NonCopyable &) = delete;
   NonCopyable &operator=(const NonCopyable &) = delete;
@@ -203,6 +200,7 @@
   VectorT otherVector;
 };
 
+
 typedef ::testing::Types<SmallVector<Constructable, 0>,
                          SmallVector<Constructable, 1>,
                          SmallVector<Constructable, 2>,
@@ -524,6 +522,7 @@
   this->assertValuesInOrder(this->theVector, 6u, 1, 16, 16, 2, 3, 4);
 }
 
+
 TYPED_TEST(SmallVectorTest, InsertRepeatedAtEndTest) {
   SCOPED_TRACE("InsertRepeatedTest");
 
@@ -582,6 +581,7 @@
   this->assertValuesInOrder(this->theVector, 6u, 1, 77, 77, 77, 2, 3);
 }
 
+
 TYPED_TEST(SmallVectorTest, InsertRangeAtEndTest) {
   SCOPED_TRACE("InsertRangeTest");
 
@@ -748,14 +748,11 @@
 
 struct MovedFrom {
   bool hasValue;
-
   MovedFrom() : hasValue(true) {
   }
-
   MovedFrom(MovedFrom&& m) : hasValue(m.hasValue) {
     m.hasValue = false;
   }
-
   MovedFrom &operator=(MovedFrom&& m) {
     hasValue = m.hasValue;
     m.hasValue = false;
@@ -778,7 +775,6 @@
   EAS_RValue,
   EAS_Failure
 };
-
 template <int I> struct EmplaceableArg {
   EmplaceableArgState State;
   EmplaceableArg() : State(EAS_Defaulted) {}
@@ -928,4 +924,4 @@
   EXPECT_TRUE(makeArrayRef(V2).equals({4, 5, 3, 2}));
 }
 
-} // end anonymous namespace
+} // end namespace
