[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Headers / header-unit-common-cmp-cat.cpp
blobfaeb3ec32127f5304b48ed92692d389c560837e4
1 // RUN: rm -fR %t
2 // RUN: split-file %s %t
3 // RUN: cd %t
4 // RUN: %clang_cc1 -verify -std=c++20 -fskip-odr-check-in-gmf -I. -emit-header-unit -xc++-user-header bz1.h
5 // RUN: %clang_cc1 -verify -std=c++20 -fskip-odr-check-in-gmf -I. -emit-header-unit -xc++-user-header bz2.h
6 // RUN: %clang_cc1 -verify -std=c++20 -fskip-odr-check-in-gmf -I. -emit-header-unit -xc++-user-header -fmodule-file=bz1.pcm -fmodule-file=bz2.pcm bz.cpp
8 //--- compare
9 namespace std {
10 namespace __detail {
12 template<typename _Tp>
13 inline constexpr unsigned __cmp_cat_id = 1;
15 template<typename... _Ts>
16 constexpr auto __common_cmp_cat() {
17 (__cmp_cat_id<_Ts> | ...);
20 } // namespace __detail
21 } // namespace std
23 //--- bz0.h
24 template <class T>
25 int operator|(T, T);
27 //--- bz1.h
28 #include "bz0.h"
29 #include <compare>
30 // expected-no-diagnostics
32 //--- bz2.h
33 #include <compare>
34 // expected-no-diagnostics
36 //--- bz.cpp
37 #include <compare>
39 import "bz1.h"; // expected-warning {{the implementation of header units is in an experimental phase}}
40 import "bz2.h"; // expected-warning {{the implementation of header units is in an experimental phase}}