Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / Modules / instantiation-argdep-lookup.cppm
blobfc9009a5bc13d5a28af7184205a81cd26b1c4879
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 -I%t -emit-module-interface -o %t/A.pcm
6 // RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/Use.cpp -verify -fsyntax-only
7 //
8 //--- foo.h
10 namespace ns {
11 struct A {};
13 template<typename Func>
14 constexpr bool __call_is_nt(A)
16     return true;
18 ns::A make();
20 template <typename T>
21 bool foo(T t) {
22     auto func = [](){};
23     return __call_is_nt<decltype(func)>(t);
27 //--- A.cppm
28 module;
29 #include "foo.h"
30 export module A;
31 export namespace ns {
32     using ns::foo;
33     using ns::make;
36 //--- Use.cpp
37 // expected-no-diagnostics
38 import A;
39 void test() {
40     auto a = ns::make();
41     ns::foo(a);