[clang] 5e975d4 - [clang/Driver] Also consider `gnu++` standard when checking for modules support
Argyrios Kyrtzidis via cfe-commits
cfe-commits at lists.llvm.org
Thu May 18 12:39:56 PDT 2023
Author: Argyrios Kyrtzidis
Date: 2023-05-18T12:34:07-07:00
New Revision: 5e975d4f67c006420d0c65ccb0f5d08e3a352f46
URL: https://github.com/llvm/llvm-project/commit/5e975d4f67c006420d0c65ccb0f5d08e3a352f46
DIFF: https://github.com/llvm/llvm-project/commit/5e975d4f67c006420d0c65ccb0f5d08e3a352f46.diff
LOG: [clang/Driver] Also consider `gnu++` standard when checking for modules support
Differential Revision: https://reviews.llvm.org/D150473
Added:
Modified:
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/modules.cpp
Removed:
################################################################################
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 3d55047ec478e..0a654c9393296 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -3692,10 +3692,13 @@ static bool RenderModulesOptions(Compilation &C, const Driver &D,
// modules support by default.
bool HaveStdCXXModules =
IsCXX && Std &&
- (Std->containsValue("c++2a") || Std->containsValue("c++20") ||
- Std->containsValue("c++2b") || Std->containsValue("c++23") ||
- Std->containsValue("c++2c") || Std->containsValue("c++26") ||
- Std->containsValue("c++latest"));
+ (Std->containsValue("c++2a") || Std->containsValue("gnu++2a") ||
+ Std->containsValue("c++20") || Std->containsValue("gnu++20") ||
+ Std->containsValue("c++2b") || Std->containsValue("gnu++2b") ||
+ Std->containsValue("c++23") || Std->containsValue("gnu++23") ||
+ Std->containsValue("c++2c") || Std->containsValue("gnu++2c") ||
+ Std->containsValue("c++26") || Std->containsValue("gnu++26") ||
+ Std->containsValue("c++latest") || Std->containsValue("gnu++latest"));
bool HaveModules = HaveStdCXXModules;
// -fmodules enables the use of precompiled modules (off by default).
diff --git a/clang/test/Driver/modules.cpp b/clang/test/Driver/modules.cpp
index e63c946770d37..b0d1f2280d254 100644
--- a/clang/test/Driver/modules.cpp
+++ b/clang/test/Driver/modules.cpp
@@ -4,6 +4,7 @@
// Check compiling a module interface to a .pcm file.
//
// RUN: %clang -std=c++2a -x c++-module --precompile %s -o %t/module.pcm -v 2>&1 | FileCheck %s --check-prefix=CHECK-PRECOMPILE
+// RUN: %clang -std=gnu++2a -x c++-module --precompile %s -o %t/module-gnu.pcm -v 2>&1 | FileCheck %s --check-prefix=CHECK-PRECOMPILE
//
// CHECK-PRECOMPILE: -cc1 {{.*}} -emit-module-interface
// CHECK-PRECOMPILE-SAME: -o {{.*}}.pcm
@@ -23,6 +24,7 @@
//
// RUN: %clang -std=c++2a -fmodule-file=%t/module.pcm -Dexport= %s -S -o %t/module.o -v 2>&1 | FileCheck %s --check-prefix=CHECK-USE
// RUN: %clang -std=c++20 -fmodule-file=%t/module.pcm -Dexport= %s -S -o %t/module.o -v 2>&1 | FileCheck %s --check-prefix=CHECK-USE
+// RUN: %clang -std=gnu++20 -fmodule-file=%t/module-gnu.pcm -Dexport= %s -S -o %t/module.o -v 2>&1 | FileCheck %s --check-prefix=CHECK-USE
//
// CHECK-USE: -cc1 {{.*}} {{-emit-obj|-S}}
// CHECK-USE-SAME: -fmodule-file={{.*}}.pcm
More information about the cfe-commits
mailing list