eaeltsin added a comment.
Heads-up - I'm seeing the compilation failure that reduces to this commit. I
didn't get a reproducer of the reasonable size yet :(
The problem occurs when using modules only.
The module has code like:
template
class A {
public:
T x;
template
friend H Helper(H h, const A& a) {
return H::foo(std::move(h), a.x);
}
};
Then, when the module client uses `Helper`, we get an error:
header.h:46:12: error: inline function 'Helper' is not defined
[-Werror,-Wundefined-inline]
If I move `Helper` definition out of friend declaration:
template
class A {
public:
T x;
template
friend H Helper(H h, const A& a);
};
template
H Helper(H h, const A& a) {
return H::foo(std::move(h), a.x);
}
things compile ok.
Without modules, both versions compile ok.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D131858/new/
https://reviews.llvm.org/D131858
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits