<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body>
<div class="moz-cite-prefix">Ahhh, now I see.<br>
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.<br>
<pre class="moz-signature" cols="72">Best regards,
Alexey Bataev
=============
Software Engineer
Intel Compiler Team
Intel Corp. </pre>
12.02.2015 21:57, Ben Langmuir пишет:<br>
</div>
<blockquote
cite="mid:E6AE2F66-6A8E-4593-8A5E-015AB7A9CCB9@apple.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<div class="">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...</div>
<div class=""><br class="">
</div>
<div class="">
<blockquote type="cite" class="">
<div class="">+void
Sema::diagnoseMissingTypename(IdentifierInfo *II,
SourceLocation IILoc,</div>
<div class="">+ Scope *S,
CXXScopeSpec *SS) {</div>
<div class="">+ unsigned DiagID = diag::err_typename_missing;</div>
<div class="">+ if (getLangOpts().MSVCCompat &&
isMicrosoftMissingTypename(SS, S))</div>
<div class="">+ DiagID = diag::ext_typename_missing;</div>
</blockquote>
<br class="">
</div>
<div class="">Ben</div>
<div class=""><br class="">
</div>
<div>
<blockquote type="cite" class="">
<div class="">On Feb 11, 2015, at 7:34 PM, Bataev, Alexey <<a
moz-do-not-send="true" href="mailto:a.bataev@gmx.com"
class="">a.bataev@gmx.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta content="text/html; charset=UTF-8"
http-equiv="Content-Type" class="">
<div bgcolor="#FFFFFF" text="#000000" class="">
<div class="moz-cite-prefix">Hi Ben,<br class="">
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<br class="">
<pre class="moz-signature" cols="72">Best regards,
Alexey Bataev
=============
Software Engineer
Intel Compiler Team
Intel Corp. </pre>
11.02.2015 20:37, Ben Langmuir пишет:<br class="">
</div>
<blockquote
cite="mid:%3CD464E701-0272-419E-8AB6-A23596A58CFA@apple.com%3E"
type="cite" class="">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" class="">
Ping
<div class=""><br class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On Jan 26, 2015, at 9:08 AM, Ben
Langmuir <<a moz-do-not-send="true"
href="mailto:blangmuir@apple.com" class="">blangmuir@apple.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" class="">
<div style="word-wrap: break-word;
-webkit-nbsp-mode: space; -webkit-line-break:
after-white-space;" class="">This patch
diagnoses a missing ‘typename’ keyword on
nested template types like
A<T>::B<U>, to fix <a
moz-do-not-send="true"
href="http://llvm.org/pr16909" class="">llvm.org/pr16909</a>.
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’.
<div class=""><br class="">
</div>
<div class="">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 :-)</div>
<div class=""><br class="">
</div>
<div class="">Ben</div>
<div class=""><br class="">
</div>
</div>
<span
id="cid:F07AC0C3-0C93-4BAC-9DA0-7121ACA68F5D@apple.com"
class=""><pr16909.patch></span>
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" class="">
</div>
</blockquote>
</div>
<br class="">
</div>
</blockquote>
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</blockquote>
<br>
</body>
</html>