[PATCH] D41910: [Concepts] Constrained partial specializations and function overloads.

Reid Kleckner via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Dec 22 12:26:34 PST 2019


rnk added a comment.

This was relanded and reverted again today (d3f5769d5e93b30d4a8b4696381d5e4a304992fa <https://reviews.llvm.org/rGd3f5769d5e93b30d4a8b4696381d5e4a304992fa> & 79cc9e9b304a90598e8def4c8b5354d1f99186eb <https://reviews.llvm.org/rG79cc9e9b304a90598e8def4c8b5354d1f99186eb>). I got this reduction:

  template <unsigned> struct a {};
  struct DestructibleUnionImpl {
    template <class...> DestructibleUnionImpl(a<0>);
    template <unsigned b, class...> DestructibleUnionImpl(a<b>);
  };
  class c {
    c() : d(a<0>()) {}
    DestructibleUnionImpl d;
  };

Compile with `clang -cc1`, get this assertion:
clang: /usr/local/google/home/rnk/bisect-llvm-project/llvm/include/llvm/ADT/SmallBitVector.h:452: llvm::SmallBitVector::reference llvm::SmallBitVector::operator[](unsigned int): Assertion `Idx < size() && "Out-of-bounds Bit access."' failed.

Please add this as a test when relanding.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D41910/new/

https://reviews.llvm.org/D41910





More information about the cfe-commits mailing list