diff clang/test/Modules/merge-lambdas.cppm @ 252:1f2b6ac9f198 llvm-original

LLVM16-1
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 18 Aug 2023 09:04:13 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/clang/test/Modules/merge-lambdas.cppm	Fri Aug 18 09:04:13 2023 +0900
@@ -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,