comicfans44 created this revision.
comicfans44 added a project: clang.

msvc allow such code construction in vs2010 / vs2017 , needs someone check this 
behavior in VS2012/VS2013/VS2015


Repository:
  rL LLVM

https://reviews.llvm.org/D38502

Files:
  clang/lib/Sema/SemaDeclCXX.cpp


Index: clang/lib/Sema/SemaDeclCXX.cpp
===================================================================
--- clang/lib/Sema/SemaDeclCXX.cpp
+++ clang/lib/Sema/SemaDeclCXX.cpp
@@ -8978,11 +8978,14 @@
     return nullptr;
 
   // Warn about access declarations.
+  // MSVC allow access decl without using
   if (UsingLoc.isInvalid()) {
     Diag(Name.getLocStart(),
-         getLangOpts().CPlusPlus11 ? diag::err_access_decl
-                                   : diag::warn_access_decl_deprecated)
-      << FixItHint::CreateInsertion(SS.getRange().getBegin(), "using ");
+         getLangOpts().MSVCCompat
+             ? diag::warn_access_decl_deprecated
+             : (getLangOpts().CPlusPlus11 ? diag::err_access_decl
+                                          : diag::warn_access_decl_deprecated))
+        << FixItHint::CreateInsertion(SS.getRange().getBegin(), "using ");
   }
 
   if (EllipsisLoc.isInvalid()) {


Index: clang/lib/Sema/SemaDeclCXX.cpp
===================================================================
--- clang/lib/Sema/SemaDeclCXX.cpp
+++ clang/lib/Sema/SemaDeclCXX.cpp
@@ -8978,11 +8978,14 @@
     return nullptr;
 
   // Warn about access declarations.
+  // MSVC allow access decl without using
   if (UsingLoc.isInvalid()) {
     Diag(Name.getLocStart(),
-         getLangOpts().CPlusPlus11 ? diag::err_access_decl
-                                   : diag::warn_access_decl_deprecated)
-      << FixItHint::CreateInsertion(SS.getRange().getBegin(), "using ");
+         getLangOpts().MSVCCompat
+             ? diag::warn_access_decl_deprecated
+             : (getLangOpts().CPlusPlus11 ? diag::err_access_decl
+                                          : diag::warn_access_decl_deprecated))
+        << FixItHint::CreateInsertion(SS.getRange().getBegin(), "using ");
   }
 
   if (EllipsisLoc.isInvalid()) {
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to