Change to avoid bug in GCC 3.0.4


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2997 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/Support/CommandLine.h b/include/Support/CommandLine.h
index e8a4250..9e02a6c 100644
--- a/include/Support/CommandLine.h
+++ b/include/Support/CommandLine.h
@@ -173,6 +173,7 @@
   // occurances of -ArgStr on the command line.
   //
   void addArgument(const char *ArgStr);
+  void removeArgument(const char *ArgStr);
 
   // Return the width of the option tag for printing...
   virtual unsigned getOptionWidth() const = 0;
@@ -255,8 +256,8 @@
 //===----------------------------------------------------------------------===//
 // Enum valued command line option
 //
-#define clEnumVal(ENUMVAL, DESC) #ENUMVAL, ENUMVAL, DESC
-#define clEnumValN(ENUMVAL, FLAGNAME, DESC) FLAGNAME, ENUMVAL, DESC
+#define clEnumVal(ENUMVAL, DESC) #ENUMVAL, (int)ENUMVAL, DESC
+#define clEnumValN(ENUMVAL, FLAGNAME, DESC) FLAGNAME, (int)ENUMVAL, DESC
 
 // values - For custom data types, allow specifying a group of values together
 // as the values that go into the mapping that the option handler uses.  Note
@@ -278,7 +279,7 @@
 
     // Process the varargs portion of the values...
     while (const char *EnumName = va_arg(ValueArgs, const char *)) {
-      DataType EnumVal = va_arg(ValueArgs, DataType);
+      DataType EnumVal = (DataType)va_arg(ValueArgs, int);
       const char *EnumDesc = va_arg(ValueArgs, const char *);
       Values.push_back(std::make_pair(EnumName,      // Add value to value map
                                       std::make_pair(EnumVal, EnumDesc)));