From: Ted Kremenek Date: Tue, 12 Mar 2013 17:02:12 +0000 (+0000) Subject: Revert "Disallow using -fmodules with -no-integrated-as." X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c06fcdfacc33ad4f8920bbdf43a0e45bc5e8ac4b;p=clang Revert "Disallow using -fmodules with -no-integrated-as." Per comment from Benjamin Kramer, this isn't portable (yet). I'll come up with a better fix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176876 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/DiagnosticDriverKinds.td b/include/clang/Basic/DiagnosticDriverKinds.td index 469bae8dd4..964d2bc193 100644 --- a/include/clang/Basic/DiagnosticDriverKinds.td +++ b/include/clang/Basic/DiagnosticDriverKinds.td @@ -75,7 +75,7 @@ def err_drv_invalid_libcxx_deployment : Error< "invalid deployment target for -stdlib=libc++ (requires %0 or later)">; def err_drv_invalid_feature : Error< "invalid feature '%0' for CPU '%1'">; - + def err_drv_I_dash_not_supported : Error< "'%0' not supported, please use -iquote instead">; def err_drv_unknown_argument : Error<"unknown argument: '%0'">; @@ -150,9 +150,4 @@ def err_analyzer_config_no_value : Error< "analyzer-config option '%0' has a key but no value">; def err_analyzer_config_multiple_values : Error< "analyzer-config option '%0' should contain only one '='">; - -def err_drv_modules_integrated_as : Error< - "modules can only be used with the compiler's integrated assembler">; -def note_drv_modules_integrated_as : Note< - "'-no-integrated-as' cannot be used with '-fmodules'">; } diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index ef759ff6d3..62b1febd52 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1429,18 +1429,12 @@ static bool ShouldDisableCFI(const ArgList &Args, Default); } -static bool ShouldUseIntegratedAssembler(const ArgList &Args, - const ToolChain &TC) { +static bool ShouldDisableDwarfDirectory(const ArgList &Args, + const ToolChain &TC) { bool IsIADefault = TC.IsIntegratedAssemblerDefault(); bool UseIntegratedAs = Args.hasFlag(options::OPT_integrated_as, options::OPT_no_integrated_as, IsIADefault); - return UseIntegratedAs; -} - -static bool ShouldDisableDwarfDirectory(const ArgList &Args, - const ToolChain &TC) { - bool UseIntegratedAs = ShouldUseIntegratedAssembler(Args, TC); bool UseDwarfDirectory = Args.hasFlag(options::OPT_fdwarf_directory_asm, options::OPT_fno_dwarf_directory_asm, UseIntegratedAs); @@ -2784,12 +2778,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-fmodules"); HaveModules = true; } - - if (HaveModules && !ShouldUseIntegratedAssembler(Args, getToolChain())) { - D.Diag(diag::err_drv_modules_integrated_as); - D.Diag(diag::note_drv_modules_integrated_as); - return; - } } // If a module path was provided, pass it along. Otherwise, use a temporary diff --git a/test/Driver/modules_integrated_as.c b/test/Driver/modules_integrated_as.c deleted file mode 100644 index 037cdd0c3c..0000000000 --- a/test/Driver/modules_integrated_as.c +++ /dev/null @@ -1,4 +0,0 @@ -// RUN: %clang -fmodules -no-integrated-as -fsyntax-only %s 2>&1 | FileCheck %s - -// CHECK: error: modules can only be used with the compiler's integrated assembler -// CHECK note: '-no-integrated-as' cannot be used with '-fmodules'