forked from OSchip/llvm-project
Revert "[Driver] Enable to use C++20 standalne by -fcxx-modules"
This reverts commit a544710cd4
.
See discussion in D120540.
This breaks C++ Clang modules on Darwin and also more than a dozen
tests in the LLDB testsuite. I think we need to be more careful to
separate out the enabling of Clang C++ modules and C++20
modules. Either by having -fmodules-ts control the HaveModules flag,
or by adding a way to explicitly turn them off.
This commit is contained in:
parent
c84b9bbac1
commit
d951ca5439
|
@ -1,5 +1,5 @@
|
|||
// RUN: rm -rf %t
|
||||
// RUN: pp-trace -callbacks '*,-FileChanged,-MacroDefined' %s -- -x objective-c++ -undef -target x86_64 -std=c++11 -fmodules -fmodules-cache-path=%t -I%S -I%S/Input | FileCheck --strict-whitespace %s
|
||||
// RUN: pp-trace -callbacks '*,-FileChanged,-MacroDefined' %s -- -x objective-c++ -undef -target x86_64 -std=c++11 -fmodules -fcxx-modules -fmodules-cache-path=%t -I%S -I%S/Input | FileCheck --strict-whitespace %s
|
||||
|
||||
// CHECK: ---
|
||||
|
||||
|
|
|
@ -1414,7 +1414,7 @@ defm async_exceptions: BoolFOption<"async-exceptions",
|
|||
PosFlag<SetTrue, [CC1Option], "Enable EH Asynchronous exceptions">, NegFlag<SetFalse>>;
|
||||
defm cxx_modules : BoolFOption<"cxx-modules",
|
||||
LangOpts<"CPlusPlusModules">, Default<cpp20.KeyPath>,
|
||||
NegFlag<SetFalse, [CC1Option], "Disable">, PosFlag<SetTrue, [CC1Option], "Enable">,
|
||||
NegFlag<SetFalse, [CC1Option], "Disable">, PosFlag<SetTrue, [], "Enable">,
|
||||
BothFlags<[NoXarchOption], " modules for C++">>,
|
||||
ShouldParseIf<cplusplus.KeyPath>;
|
||||
def fdebug_pass_arguments : Flag<["-"], "fdebug-pass-arguments">, Group<f_Group>;
|
||||
|
|
|
@ -3630,12 +3630,6 @@ static void RenderModulesOptions(Compilation &C, const Driver &D,
|
|||
HaveModules = true;
|
||||
}
|
||||
|
||||
if (Args.hasFlag(options::OPT_fcxx_modules, options::OPT_fno_cxx_modules,
|
||||
false)) {
|
||||
CmdArgs.push_back("-fcxx-modules");
|
||||
HaveModules = true;
|
||||
}
|
||||
|
||||
// -fmodule-maps enables implicit reading of module map files. By default,
|
||||
// this is enabled if we are using Clang's flavor of precompiled modules.
|
||||
if (Args.hasFlag(options::OPT_fimplicit_module_maps,
|
||||
|
|
|
@ -73,14 +73,3 @@ import "foo.h";
|
|||
// CHECK-HEADER-UNIT-USE: BAR;
|
||||
FOO;
|
||||
#endif
|
||||
|
||||
// Check the independent use of -fcxx-modules
|
||||
//
|
||||
// RUN: %clang++ -fcxx-modules -std=c++17 -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-CXX17-MODULES
|
||||
// CHECK-CXX17-MODULES: "-fcxx-modules"
|
||||
// RUN: %clang++ -fcxx-modules -std=c++14 -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-CXX14-MODULES
|
||||
// CHECK-CXX14-MODULES: "-fcxx-modules"
|
||||
// RUN: %clang++ -fcxx-modules -std=c++11 -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-CXX11-MODULES
|
||||
// CHECK-CXX11-MODULES: "-fcxx-modules"
|
||||
// RUN: %clang++ -fcxx-modules -std=c++03 -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-CXX03-MODULES
|
||||
// CHECK-CXX03-MODULES: "-fcxx-modules"
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
// This tests that we could use C++20 modules standalone.
|
||||
// RUN: %clang -std=c++03 -fcxx-modules -fsyntax-only -Xclang -verify %s
|
||||
// RUN: %clang -std=c++11 -fcxx-modules -fsyntax-only -Xclang -verify %s
|
||||
// RUN: %clang -std=c++14 -fcxx-modules -fsyntax-only -Xclang -verify %s
|
||||
// RUN: %clang -std=c++17 -fcxx-modules -fsyntax-only -Xclang -verify %s
|
||||
// expected-no-diagnostics
|
||||
export module M;
|
Loading…
Reference in New Issue