Mercurial > hg > CbC > CbC_llvm
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,