Ahhh, now I see.
It seems your patch is missing tests for MS compatibility mode (both
Sema and CodeGen). If you need to check something on Windows I can help
you with it.
Best regards,
Alexey Bataev
=============
Software Engineer
Intel Compiler Team
Intel Corp.
12.02.2015 21:57, Ben Langmuir пишет:
I tried to replicate the way the existing ‘missing typename’
diagnostic behaved for MSVC compatibility. Is there something more
that needs to be done here? I’m not sure how I can verify that the
resulting IR is correct on Windows, though...
+void Sema::diagnoseMissingTypename(IdentifierInfo *II,
SourceLocation IILoc,
+ Scope *S, CXXScopeSpec *SS) {
+ unsigned DiagID = diag::err_typename_missing;
+ if (getLangOpts().MSVCCompat && isMicrosoftMissingTypename(SS, S))
+ DiagID = diag::ext_typename_missing;
Ben
On Feb 11, 2015, at 7:34 PM, Bataev, Alexey <[email protected]
<mailto:[email protected]>> wrote:
Hi Ben,
I don't think your patch is compatible with MSVC. MSVC accepts this
code and clang should accept it and generate proper LLVM IR.
Actually, you can run into similar code in MSVC system headers.
That's the main problem
Best regards,
Alexey Bataev
=============
Software Engineer
Intel Compiler Team
Intel Corp.
11.02.2015 20:37, Ben Langmuir пишет:
Ping
On Jan 26, 2015, at 9:08 AM, Ben Langmuir <[email protected]
<mailto:[email protected]>> wrote:
This patch diagnoses a missing ‘typename’ keyword on nested
template types like A<T>::B<U>, to fix llvm.org/pr16909
<http://llvm.org/pr16909>. In addition to fixing an
accepts-invalid, in C++11 such types would cause assertion failures
and/or invalid LLVM IR when used with ‘auto’.
I’m not 100% sure if the changes to
test/CXX/basic/basic.lookup/basic.lookup.qual/class.qual/p2.cpp are
desirable, or if we should suppress the missing ‘typename’
diagnostic when we’re already recovering on X<T>::X<T>. I’m open
to suggestions :-)
Ben
<pr16909.patch>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits