[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Modules / named-modules-adl.cppm
blob079d816200b2c7711e686295a857d28711640b55
1 // RUN: rm -rf %t
2 // RUN: split-file %s %t
3 // RUN: cd %t
4 //
5 // RUN: %clang_cc1 -std=c++20 %t/a.cppm -emit-module-interface -o %t/a.pcm
6 // RUN: %clang_cc1 -std=c++20 %t/b.cppm -fmodule-file=a=%t/a.pcm -fsyntax-only -verify
8 // RUN: %clang_cc1 -std=c++20 %t/a.cppm -emit-reduced-module-interface -o %t/a.pcm -DREDUCED
9 // RUN: %clang_cc1 -std=c++20 %t/b.cppm -fmodule-file=a=%t/a.pcm -fsyntax-only -verify
11 //--- a.h
12 namespace n {
14 struct s { };
16 void operator+(s, int) {
19 } // namespace n
21 //--- a.cppm
22 module;
23 #include "a.h"
24 export module a;
26 export template<typename T>
27 void a(T x) {
28         n::s() + x;
31 #ifdef REDUCED
32 // Use it to make sure it is not optimized out in reduced BMI.
33 using n::operator+;
34 #endif
36 //--- b.cppm
37 // expected-no-diagnostics
38 export module b;
39 import a;
41 void b() {
42         a(0);