Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / Modules / pr62158.cppm
blob7a0761df77158079c6e2e6f501aff665fa0f6246
1 // RUN: rm -rf %t
2 // RUN: mkdir -p %t
3 // RUN: split-file %s %t
4 //
5 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/lib.cppm -o %t/lib.pcm
6 // RUN: %clang_cc1 -std=c++20 %t/main.cpp -fmodule-file=lib=%t/lib.pcm \
7 // RUN:     -verify -fsyntax-only
9 //--- header.h
10 namespace lib::inline __1 {
11 template <class>
12 inline constexpr bool test = false;
13 template <class>
14 constexpr bool func() {
15     return false;
17 inline constexpr bool non_templ = true;
18 } // namespace lib
20 //--- lib.cppm
21 module;
22 #include "header.h"
23 export module lib;
25 export namespace lib {
26     using lib::test;
27     using lib::func;
28     using lib::non_templ;
29 } // namespace lib
31 //--- main.cpp
32 // expected-no-diagnostics
33 import lib;
35 struct foo {};
37 template <>
38 inline constexpr bool lib::test<foo> = true;
40 template <>
41 constexpr bool lib::func<foo>() {
42     return true;
45 static_assert(lib::test<foo>);
46 static_assert(lib::func<foo>());