[PATCH] D129973: [clang] Pass FoundDecl to DeclRefExpr creator for operator overloads
joanahalili via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 3 10:42:12 PDT 2022
joanahalili added a comment.
In D129973#3696189 <https://reviews.llvm.org/D129973#3696189>, @joanahalili wrote:
> Heads up: This commit causes clang crashes on our end. We are currently working on a reproducer and will post it as soon as its ready.
Here is the reduced code:
template <class a> struct b {
template <class c> void ab(c);
template <class c> void ad(c p1) { ab(d()(p1)); }
a d();
};
template <typename e> struct f {
using aa = e;
template <class g> struct j {
g ag;
template <class... h> auto operator()(h... p1) -> decltype(ag(p1...));
};
using ai = b<j<aa>>;
template <class c> void ad(c p1) { i.ad(p1); }
ai i;
};
template <typename c, typename> struct l {
int k(const c &);
struct n {
int operator()(const c &) const;
};
using m = f<n>;
m aj;
};
template <typename c, typename al> int l<c, al>::k(const c &p1) { aj.ad(p1); }
template <typename c, typename al>
int l<c, al>::n::operator()(const c &) const {}
template class l<int, int>;
This commit causes a compiler crash for this code. It however successfully builds with the previous commit compiler.
Here is also a link comparing released clang with clang trunk where trunk is crashing and the released version is not: https://godbolt.org/z/fdbo74c54
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D129973/new/
https://reviews.llvm.org/D129973
More information about the cfe-commits
mailing list