https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86946

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |jason at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |jason at gcc dot gnu.org

--- Comment #6 from Jason Merrill <jason at gcc dot gnu.org> ---
Well-formed version of the testcase, that has never worked:

template <typename a, typename c> constexpr int d(a, c) { return 42; }
template <long> class e {};
template <unsigned long f, unsigned b, typename> e<d(f, b)> d();
template <unsigned long f, unsigned b, typename> e<d(f, b)> d();

int main()
{
  d<1,2,int>();
}

With checking disabled, the two declarations are treated as ambiguous; with
checking enabled, we do structural comparison and find the internal
inconsistency, and so ICE.

What is the testcase from capnproto?

Reply via email to