[cfe-dev] Clang as a compiler-only tool

Roman Divacky rdivacky at freebsd.org
Sun Nov 18 09:06:11 PST 2012


On Sun, Nov 18, 2012 at 02:45:10PM +0200, Dmitri Gribenko wrote:
> On Sun, Nov 18, 2012 at 2:16 PM, Roman Divacky <rdivacky at freebsd.org> wrote:
> > I would like to ask about your opinion on the attached trivial patch, which
> > introduces #ifndef CLANG_IS_COMPILER_ONLY in two places.
> 
> --- lib/FrontendTool/ExecuteCompilerInvocation.cpp	(revision 168286)
> +++ lib/FrontendTool/ExecuteCompilerInvocation.cpp	(working copy)
> @@ -79,11 +81,13 @@
>      return new PrintPreprocessedAction();
>    }
> 
> +#ifndef CLANG_IS_COMPILER_ONLY
>    case RewriteMacros:          return new RewriteMacrosAction();
>    case RewriteObjC:            return new RewriteObjCAction();
>    case RewriteTest:            return new RewriteTestAction();
>    case RunAnalysis:            return new ento::AnalysisAction();
>    case MigrateSource:          return new arcmt::MigrateSourceAction();
> +#endif
>    case RunPreprocessorOnly:    return new PreprocessOnlyAction();
>    }
>    llvm_unreachable("Invalid program action!");
> 
> Won't this cause Clang to crash if the user asks for an action that is
> not compiled-in?

It will execute llvm_unreachable("Invalid program action!"); which is fine
for me. FreeBSD really needs just the compiler bits.

Note that I am not advocating making this the default, just having a way
to make this possible without modifying the sources.

Roman



More information about the cfe-dev mailing list