Author: Chuanqi Xu Date: 2023-06-28T13:41:39+08:00 New Revision: 2241146752f9260d077a6ac38f43069f945e85b4
URL: https://github.com/llvm/llvm-project/commit/2241146752f9260d077a6ac38f43069f945e85b4 DIFF: https://github.com/llvm/llvm-project/commit/2241146752f9260d077a6ac38f43069f945e85b4.diff LOG: [NFC] [C++20] [Modules] Add a test for merging lambda types Close https://github.com/llvm/llvm-project/issues/57222. This should be fixed with the series of bc73ef0. Add the test case for C++20 Named modules. Added: clang/test/Modules/merge-lambdas.cppm Modified: Removed: ################################################################################ diff --git a/clang/test/Modules/merge-lambdas.cppm b/clang/test/Modules/merge-lambdas.cppm new file mode 100644 index 0000000000000..a1d04ab4e234d --- /dev/null +++ b/clang/test/Modules/merge-lambdas.cppm @@ -0,0 +1,40 @@ +// RUN: rm -rf %t +// RUN: mkdir %t +// RUN: split-file %s %t +// +// RUN: %clang_cc1 -std=c++20 %t/A.cppm -emit-module-interface -o %t/A.pcm +// RUN: %clang_cc1 -std=c++20 %t/B.cppm -emit-module-interface -o %t/B.pcm +// RUN: %clang_cc1 -std=c++20 %t/use.cppm -fprebuilt-module-path=%t -fsyntax-only -verify + +//--- lambda.h +inline auto cmp = [](auto l, auto r) { + return l < r; +}; + +//--- A.cppm +module; +#include "lambda.h" + +export module A; +export auto c1 = cmp; +export using ::cmp; + +//--- B.cppm +module; +#include "lambda.h" + +export module B; +export auto c2 = cmp; +export using ::cmp; + +//--- use.cppm +// expected-no-diagnostics +module; + +export module use; + +import A; +import B; + +static_assert(__is_same(decltype(c1), decltype(c2))); // should succeed. +auto x = cmp; // cmp must not be ambiguous, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits