Better error output when template needed before dependent name?

https://llvm.org/bugs/show_bug.cgi?id=13566
https://llvm.org/bugs/show_bug.cgi?id=18995

I was working on some code and confused by the error output that’s documented in the above bugzillas, so I was curious if there’s been any work on improving this error output?

Thanks,

Dave

Can you provide a minimal example that reproduces this error?

Here’s the minimal reproducer that I could come up with:

template<int N>
struct test_template
{
  template<int N2>
  void do_nothing(int value)
  {
    (void)value;
  }
};

template<int N>
void do_test()
{
  test_template<N> t;
  t.do_nothing<N>(0);
}

int main()
{
  do_test<2>();

  return 0;
}