As Doug pointed out (and I really should know), it is perfectly easy to
make VariadicFunction actually be trivial. Do so, and also make it look
more like your standard trivial functor by making it a struct with no
access specifiers. The unit test is updated to initialize its functors
properly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146827 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/unittests/ADT/VariadicFunctionTest.cpp b/unittests/ADT/VariadicFunctionTest.cpp
index 3cd63d2..cde3120 100644
--- a/unittests/ADT/VariadicFunctionTest.cpp
+++ b/unittests/ADT/VariadicFunctionTest.cpp
@@ -22,7 +22,7 @@
     S += *Args[i];
   return S;
 }
-const VariadicFunction<std::string, std::string, StringCatImpl> StringCat;
+const VariadicFunction<std::string, std::string, StringCatImpl> StringCat = {};
 
 TEST(VariadicFunctionTest, WorksForClassTypes) {
   EXPECT_EQ("", StringCat());
@@ -45,7 +45,7 @@
     Result += *Args[i];
   return Result;
 }
-const VariadicFunction<long, int, SumImpl> Sum;
+const VariadicFunction<long, int, SumImpl> Sum = {};
 
 TEST(VariadicFunctionTest, WorksForPrimitiveTypes) {
   EXPECT_EQ(0, Sum());
@@ -65,7 +65,7 @@
   return Chars;
 }
 const VariadicFunction1<int, std::string *, std::string,
-                        StringAppendImpl> StringAppend;
+                        StringAppendImpl> StringAppend = {};
 
 TEST(VariadicFunction1Test, Works) {
   std::string S0("hi");
@@ -93,7 +93,7 @@
       ++(*NumInRange);
 }
 const VariadicFunction3<void, int *, int, int, int,
-                        CountInRangeImpl> CountInRange;
+                        CountInRangeImpl> CountInRange = {};
 
 TEST(VariadicFunction3Test, Works) {
   int N = -1;