Update slang for LLVM merge up to r187914.
Move OptParser.td dependency to use LLVM's version.
Switch to llvm::sys::fs::F_* enums.
Switch to LLVM Option handling library (not in Clang any more).
Add new ALIASARGS field to OPTION macro.
Switch to clang::getLastArgIntValue() helper function.
Use llvm::sys::fs::OpenFlags as enum and not unsigned int.
Remove unused DisableSimplifyLibCalls().
Switch to llvm::sys::fs::create_directories().
Change-Id: I9b12e18b759536c762ea0dd43356907ee53dbddb
diff --git a/llvm-rs-cc.cpp b/llvm-rs-cc.cpp
index cc77b7a..e2c9599 100644
--- a/llvm-rs-cc.cpp
+++ b/llvm-rs-cc.cpp
@@ -21,11 +21,8 @@
#include <utility>
#include <vector>
-#include "clang/Driver/Arg.h"
-#include "clang/Driver/ArgList.h"
#include "clang/Driver/DriverDiagnostic.h"
-#include "clang/Driver/Option.h"
-#include "clang/Driver/OptTable.h"
+#include "clang/Driver/Options.h"
#include "clang/Basic/DiagnosticOptions.h"
#include "clang/Frontend/TextDiagnosticPrinter.h"
@@ -35,6 +32,10 @@
#include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/ADT/OwningPtr.h"
+#include "llvm/Option/Arg.h"
+#include "llvm/Option/ArgList.h"
+#include "llvm/Option/Option.h"
+#include "llvm/Option/OptTable.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/MemoryBuffer.h"
@@ -49,15 +50,13 @@
#include "slang_rs.h"
#include "slang_rs_reflect_utils.h"
-// Class under clang::driver used are enumerated here.
-using clang::driver::arg_iterator;
using clang::driver::options::DriverOption;
-using clang::driver::Arg;
-using clang::driver::ArgList;
-using clang::driver::InputArgList;
-using clang::driver::Option;
-using clang::driver::OptTable;
-using namespace clang::driver::options;
+using llvm::opt::arg_iterator;
+using llvm::opt::Arg;
+using llvm::opt::ArgList;
+using llvm::opt::InputArgList;
+using llvm::opt::Option;
+using llvm::opt::OptTable;
// SaveStringInSet, ExpandArgsFromBuf and ExpandArgv are all copied from
// $(CLANG_ROOT)/tools/driver/driver.cpp for processing argc/argv passed in
@@ -76,7 +75,7 @@
enum {
OPT_INVALID = 0, // This is not an option ID.
#define PREFIX(NAME, VALUE)
-#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, FLAGS, PARAM, \
+#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
HELPTEXT, METAVAR) OPT_##ID,
#include "RSCCOptions.inc"
LastOption
@@ -85,7 +84,7 @@
};
#define PREFIX(NAME, VALUE) const char *const NAME[] = VALUE;
-#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, FLAGS, PARAM, \
+#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
HELPTEXT, METAVAR)
#include "RSCCOptions.inc"
#undef OPTION
@@ -93,10 +92,10 @@
static const OptTable::Info RSCCInfoTable[] = {
#define PREFIX(NAME, VALUE)
-#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, FLAGS, PARAM, \
+#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
HELPTEXT, METAVAR) \
{ PREFIX, NAME, HELPTEXT, METAVAR, OPT_##ID, Option::KIND##Class, PARAM, \
- FLAGS, OPT_##GROUP, OPT_##ALIAS },
+ FLAGS, OPT_##GROUP, OPT_##ALIAS, ALIASARGS },
#include "RSCCOptions.inc"
#undef OPTION
#undef PREFIX
@@ -307,16 +306,18 @@
Opts.mShowVersion = Args->hasArg(OPT_version);
Opts.mDebugEmission = Args->hasArg(OPT_emit_g);
- size_t OptLevel = Args->getLastArgIntValue(OPT_optimization_level,
- 3,
- DiagEngine);
+ size_t OptLevel = clang::getLastArgIntValue(*Args,
+ OPT_optimization_level,
+ 3,
+ DiagEngine);
Opts.mOptimizationLevel = OptLevel == 0 ? llvm::CodeGenOpt::None
: llvm::CodeGenOpt::Aggressive;
- Opts.mTargetAPI = Args->getLastArgIntValue(OPT_target_api,
- RS_VERSION,
- DiagEngine);
+ Opts.mTargetAPI = clang::getLastArgIntValue(*Args,
+ OPT_target_api,
+ RS_VERSION,
+ DiagEngine);
}
return;