diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-06-07 23:26:47 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-06-07 23:26:47 +0000 |
commit | 9507f9cc054da3b8148ac294ea5ced79625a897f (patch) | |
tree | 8123c0e96ac8c8359321cc2db45ee1506814111c /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | fcb2e6ddea39b8f235fa00fc0b245ce01d76956b (diff) | |
download | llvm-9507f9cc054da3b8148ac294ea5ced79625a897f.zip llvm-9507f9cc054da3b8148ac294ea5ced79625a897f.tar.gz llvm-9507f9cc054da3b8148ac294ea5ced79625a897f.tar.bz2 |
Frontend: Add FrontendAction support for handling LLVM IR inputs.
- These inputs follow an abbreviated execution path, but are still worth handling by FrontendAction so they reuse all the other clang -cc1 features.
llvm-svn: 105582
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index df2bb28..026a92c 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -287,6 +287,7 @@ static const char *getInputKindName(InputKind Kind) { case IK_Asm: return "assembler-with-cpp"; case IK_C: return "c"; case IK_CXX: return "c++"; + case IK_LLVM_IR: return "ir"; case IK_ObjC: return "objective-c"; case IK_ObjCXX: return "objective-c++"; case IK_OpenCL: return "cl"; @@ -1022,6 +1023,7 @@ static InputKind ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args, .Case("c++-header", IK_CXX) .Case("objective-c++-header", IK_ObjCXX) .Case("ast", IK_AST) + .Case("ir", IK_LLVM_IR) .Default(IK_None); if (DashX == IK_None) Diags.Report(diag::err_drv_invalid_value) @@ -1141,6 +1143,7 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK, switch (IK) { case IK_None: case IK_AST: + case IK_LLVM_IR: assert(0 && "Invalid input kind!"); case IK_OpenCL: LangStd = LangStandard::lang_opencl; @@ -1401,7 +1404,7 @@ void CompilerInvocation::CreateFromArgs(CompilerInvocation &Res, ParseDiagnosticArgs(Res.getDiagnosticOpts(), *Args, Diags); InputKind DashX = ParseFrontendArgs(Res.getFrontendOpts(), *Args, Diags); ParseHeaderSearchArgs(Res.getHeaderSearchOpts(), *Args); - if (DashX != IK_AST) + if (DashX != IK_AST && DashX != IK_LLVM_IR) ParseLangArgs(Res.getLangOpts(), *Args, DashX, Diags); ParsePreprocessorArgs(Res.getPreprocessorOpts(), *Args, Diags); ParsePreprocessorOutputArgs(Res.getPreprocessorOutputOpts(), *Args); |