xref: /llvm-project/clang/test/Modules/Inputs/cxx-irgen-left.h (revision 4d2357948b6a5c4e232fa988c364e4dcd0193288)
1d28ac5b9SRichard Smith #include "cxx-irgen-top.h"
2d28ac5b9SRichard Smith 
3d28ac5b9SRichard Smith S<int> s;
404d05b5fSRichard Smith 
instantiate_min()504d05b5fSRichard Smith inline int instantiate_min() {
604d05b5fSRichard Smith   return min(1, 2);
704d05b5fSRichard Smith }
8cd45dbc5SRichard Smith 
9cd45dbc5SRichard Smith inline int instantiate_CtorInit(CtorInit<int> i = CtorInit<int>()) {
10cd45dbc5SRichard Smith   return i.a;
11cd45dbc5SRichard Smith }
126de7a247SRichard Smith 
136de7a247SRichard Smith namespace ImplicitSpecialMembers {
create_left()146de7a247SRichard Smith   inline void create_left() {
156de7a247SRichard Smith     // Trigger declaration, but not definition, of special members.
166de7a247SRichard Smith     B b(0); C c(0); D d(0);
176de7a247SRichard Smith     // Trigger definition of copy constructor.
186de7a247SRichard Smith     C c2(c); D d2(d);
196de7a247SRichard Smith   }
206de7a247SRichard Smith }
21*4d235794SRichard Smith 
22*4d235794SRichard Smith namespace OperatorDeleteLookup {
23*4d235794SRichard Smith   // Trigger definition of A::~A() and lookup of operator delete.
24*4d235794SRichard Smith   // Likewise for B<int>::~B().
f()25*4d235794SRichard Smith   inline void f() { A a; B<int> b; }
26*4d235794SRichard Smith }
27