Eric Fiselier 525a351447 [modules] Mark deleted functions as implicitly inline to allow merging
Summary: When merging definitions with ModulesLocalVisibility enabled it's important to make deleted definitions implicitly inline, otherwise they'll be diagnosed as a redefinition.

Reviewers: silvas, manmanren, rsmith

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D26143

llvm-svn: 285655
2016-10-31 23:07:15 +00:00

30 lines
407 B
C++

#ifndef A_H
#define A_H
template <typename T>
struct A {
template <typename I>
A(I i1, I i2) {
}
A(double) {}
A(double, double) {}
A(double, int) {}
A(int, double) {}
};
template <typename T1, typename T2>
T1 fff(T2* t) {
return T1(t, t);
}
inline A<int> ff(int i) {
return fff<A<int>>(&i);
}
struct Aggregate {
int member;
};
bool operator==(Aggregate, Aggregate) = delete;
#endif