Turn cl::values() (for enum) from a vararg function to using C++ variadic template

The core of the change is supposed to be NFC, however it also fixes
what I believe was an undefined behavior when calling:

 va_start(ValueArgs, Desc);

with Desc being a StringRef.

Differential Revision: https://reviews.llvm.org/D25342

llvm-svn: 283671
diff --git a/llvm/tools/llvm-mc-fuzzer/llvm-mc-fuzzer.cpp b/llvm/tools/llvm-mc-fuzzer/llvm-mc-fuzzer.cpp
index df8e011..e31ea76 100644
--- a/llvm/tools/llvm-mc-fuzzer/llvm-mc-fuzzer.cpp
+++ b/llvm/tools/llvm-mc-fuzzer/llvm-mc-fuzzer.cpp
@@ -31,8 +31,7 @@
        cl::values(clEnumValN(AC_Assemble, "assemble",
                              "Assemble a .s file (default)"),
                   clEnumValN(AC_Disassemble, "disassemble",
-                             "Disassemble strings of hex bytes"),
-                  clEnumValEnd));
+                             "Disassemble strings of hex bytes")));
 
 static cl::opt<std::string>
     TripleName("triple", cl::desc("Target triple to assemble for, "