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

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to