brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 4363e45 Raw
45 lines · plain
1// RUN: rm -rf %t2// RUN: mkdir %t3// RUN: split-file %s %t4//5// RUN: %clang_cc1 -std=c++20 %t/A.cppm -emit-module-interface -o %t/A.pcm6// RUN: %clang_cc1 -std=c++20 %t/B.cppm -emit-module-interface -o %t/B.pcm7// RUN: %clang_cc1 -std=c++20 %t/use.cppm -fprebuilt-module-path=%t -fsyntax-only -verify8 9// RUN: %clang_cc1 -std=c++20 %t/A.cppm -emit-reduced-module-interface -o %t/A.pcm10// RUN: %clang_cc1 -std=c++20 %t/B.cppm -emit-reduced-module-interface -o %t/B.pcm11// RUN: %clang_cc1 -std=c++20 %t/use.cppm -fprebuilt-module-path=%t -fsyntax-only -verify12 13//--- lambda.h14inline auto cmp = [](auto l, auto r) {15  return l < r;16};17 18//--- A.cppm19module;20#include "lambda.h"21 22export module A;23export auto c1 = cmp;24export using ::cmp;25 26//--- B.cppm27module;28#include "lambda.h"29 30export module B;31export auto c2 = cmp;32export using ::cmp;33 34//--- use.cppm35// expected-no-diagnostics36module;37 38export module use;39 40import A;41import B;42 43static_assert(__is_same(decltype(c1), decltype(c2))); // should succeed.44auto x = cmp; // cmp must not be ambiguous,45