Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / Modules / partial_specialization.cppm
blob3a01857172112e1796c7f08242f686f32a362524
1 // RUN: rm -rf %t
2 // RUN: split-file %s %t
3 // RUN: cd %t
4 //
5 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/A.cppm -o %t/A.pcm
6 // RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/Use.cpp -fsyntax-only -verify
7 //
8 //--- foo.h
9 template<typename T, typename U>
10 inline constexpr bool IsSame = false;
12 template<typename T>
13 inline constexpr bool IsSame<T, T> = true;
15 template <typename T>
16 class A {
17 public:
18     A();
19     ~A() noexcept(IsSame<T, T>);
22 //--- A.cppm
23 module;
24 #include "foo.h"
25 export module A;
26 export using ::A;
28 //--- Use.cpp
29 import A;
30 void bool_consume(bool b);
31 void use() {
32     A<int> a{};
33     bool_consume(IsSame); // expected-error {{use of undeclared identifier 'IsSame'}}