[PATCH] D29401: Fix MSVC Compatibility around dependent type with missing 'typename'

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 1 09:53:55 PST 2017


erichkeane added a comment.

Some quick line-comments here.



================
Comment at: lib/Parse/ParseStmt.cpp:186
     // found.
-    if (Next.isNot(tok::coloncolon)) {
+    if (Next.isNot(tok::coloncolon) && (!getLangOpts().MSVCCompat ||
+        Next.isNot(tok::less))) {
----------------
Clang-tidy created this layout here that I'm not thrilled with, if OK, I'd like to move the entirety of the 2nd component to the "&&" on its own line.  Additionally, if anyone has a better way to do this logic, I'm all ears!


================
Comment at: test/SemaCXX/MicrosoftCompatibility.cpp:222
+    const A<T>::TYPE var2 = 2; // expected-warning {{missing 'typename' prior to dependent type name}}
+    A<T>::TYPE var3 = 2; // expected-warning {{missing 'typename' prior to dependent type name}}
+    MissingTypename::A<T>::TYPE var4 = 2; // expected-warning {{missing 'typename' prior to dependent type name}}
----------------
This is the line that previously failed.  Curiously, the one above and below seemed to succeed without this change.


https://reviews.llvm.org/D29401





More information about the cfe-commits mailing list