<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, May 27, 2014 at 7:26 AM, Aaron Ballman <span dir="ltr"><<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This test is currently XFAILed, without any real explanation as to<br>
why. When I compile the test, I get:<br>
<br>
E:\llvm\2013>clang -fsyntax-only E:\llvm\llvm\tools\clang\test\CXX\temp\temp.par<br>
am\p14.cpp<br>
E:\llvm\llvm\tools\clang\test\CXX\temp\temp.param\p14.cpp:5:32: error: use of<br>
      undeclared identifier 'T'<br>
template<typename T = typename T::type> struct X; // expected-error{{default}}<br>
                               ^<br>
E:\llvm\llvm\tools\clang\test\CXX\temp\temp.param\p14.cpp:5:35: error: expected<br>
      a qualified name after 'typename'<br>
template<typename T = typename T::type> struct X; // expected-error{{default}}<br>
                                  ^<br>
E:\llvm\llvm\tools\clang\test\CXX\temp\temp.param\p14.cpp:5:35: error: type-id<br>
      cannot have a name<br>
template<typename T = typename T::type> struct X; // expected-error{{default}}<br>
                                  ^~~~<br>
3 errors generated.<br>
<br>
So the test fails to compile, as expected. The error message is fairly<br>
reasonable. Is this XFAILed because of QoI? Or would it make sense to<br>
un-XFAIL this test with the appropriate changes?<br></blockquote><div><br></div><div>The test is reasonable, but it shouldn't be in temp.param any more. The relevant rule is [basic.scope.pdecl]p10. We already have relevant -- and more thorough -- tests there (although they're in p9.cpp). I'd say just delete this file.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
By comparison, gcc emits:<br>
<br>
prog.cpp:1:32: error: ‘T’ has not been declared<br>
 template<typename T = typename T::type> struct X; // expected-error{{default}}<br>
<br>
And MSVC requires a bit more coaxing (you have to actually instantiate<br>
the struct to get the diagnostic), but eventually emits: error C2079:<br>
'x' uses undefined struct 'X<Test>'<br>
<span class="HOEnZb"><font color="#888888"><br>
~Aaron<br>
</font></span></blockquote></div><br></div></div>