[PATCH] D111283: [clang] template / auto deduction deduces common sugar
Alexander Kornienko via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 13 01:05:35 PDT 2022
alexfh added a comment.
In D111283#3785259 <https://reviews.llvm.org/D111283#3785259>, @alexfh wrote:
> In D111283#3785240 <https://reviews.llvm.org/D111283#3785240>, @alexfh wrote:
>
>> In D111283#3783627 <https://reviews.llvm.org/D111283#3783627>, @alexfh wrote:
>>
>>> Hi Matheus, an early heads up: this commit is causing clang crashes on some of our code. I'll post more details a bit later.
>>
>> The stack trace of the failure looks like this:
>
> And the assertions-enabled build of clang prints this:
>
> Unexpected sugar-free: TemplateTypeParm
> UNREACHABLE executed at llvm-project/clang/lib/AST/ASTContext.cpp:12383!
Reduced test case:
$ cat q.cc
struct a {
int b;
};
template <typename c, typename d> using e = c d::*;
struct f {
long b() const;
template <typename c> c g(e<c, a>) const;
a h;
};
template <typename c, typename d, typename... i>
void j(e<c, d>, const d *, i...);
template <typename c, typename d> c j(e<c, d>, const d *);
template <typename c> c f::g(e<c, a> k) const { return j(k, &h); }
long f::b() const { return g(&a::b); }
$ ./clang-after q.cc
...
1. <eof> parser at end of file
2. q.cc:13:28: instantiating function definition 'f::g<int>'
...
clang-after: error: unable to execute command: Trace/breakpoint trap
clang-after: error: clang frontend command failed due to signal (use -v to see invocation)
Please fix or revert soon.
Thanks!
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D111283/new/
https://reviews.llvm.org/D111283
More information about the cfe-commits
mailing list