瀏覽代碼

Fix "enumeral mismatch in conditional expression" gcc7 warnings. NFCI.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@349342 91177308-0d34-0410-b5e6-96231b3b80d8
Simon Pilgrim 6 年之前
父節點
當前提交
c9e5cf1d03
共有 2 個文件被更改,包括 21 次插入20 次删除
  1. 4 3
      lib/Sema/SemaDeclAttr.cpp
  2. 17 17
      lib/Sema/SemaDeclCXX.cpp

+ 4 - 3
lib/Sema/SemaDeclAttr.cpp

@@ -6103,9 +6103,10 @@ static void ProcessDeclAttribute(Sema &S, Scope *scope, Decl *D,
   // though they were unknown attributes.
   if (AL.getKind() == ParsedAttr::UnknownAttribute ||
       !AL.existsInTarget(S.Context.getTargetInfo())) {
-    S.Diag(AL.getLoc(), AL.isDeclspecAttribute()
-                            ? diag::warn_unhandled_ms_attribute_ignored
-                            : diag::warn_unknown_attribute_ignored)
+    S.Diag(AL.getLoc(),
+           AL.isDeclspecAttribute()
+               ? (unsigned)diag::warn_unhandled_ms_attribute_ignored
+               : (unsigned)diag::warn_unknown_attribute_ignored)
         << AL;
     return;
   }

+ 17 - 17
lib/Sema/SemaDeclCXX.cpp

@@ -2347,8 +2347,8 @@ Sema::ActOnBaseSpecifier(Decl *classdecl, SourceRange SpecifierRange,
     if (AL.isInvalid() || AL.getKind() == ParsedAttr::IgnoredAttribute)
       continue;
     Diag(AL.getLoc(), AL.getKind() == ParsedAttr::UnknownAttribute
-                          ? diag::warn_unknown_attribute_ignored
-                          : diag::err_base_specifier_attribute)
+                          ? (unsigned)diag::warn_unknown_attribute_ignored
+                          : (unsigned)diag::err_base_specifier_attribute)
         << AL.getName();
   }
 
@@ -2867,14 +2867,14 @@ static const ParsedAttr *getMSPropertyAttr(const ParsedAttributesView &list) {
   return nullptr;
 }
 
-// Check if there is a field shadowing.
-void Sema::CheckShadowInheritedFields(const SourceLocation &Loc,
-                                      DeclarationName FieldName,
-                                      const CXXRecordDecl *RD,
-                                      bool DeclIsField) {
-  if (Diags.isIgnored(diag::warn_shadow_field, Loc))
-    return;
-
+// Check if there is a field shadowing.
+void Sema::CheckShadowInheritedFields(const SourceLocation &Loc,
+                                      DeclarationName FieldName,
+                                      const CXXRecordDecl *RD,
+                                      bool DeclIsField) {
+  if (Diags.isIgnored(diag::warn_shadow_field, Loc))
+    return;
+
   // To record a shadowed field in a base
   std::map<CXXRecordDecl*, NamedDecl*> Bases;
   auto FieldShadowed = [&](const CXXBaseSpecifier *Specifier,
@@ -2908,13 +2908,13 @@ void Sema::CheckShadowInheritedFields(const SourceLocation &Loc,
       continue;
     auto BaseField = It->second;
     assert(BaseField->getAccess() != AS_private);
-    if (AS_none !=
-        CXXRecordDecl::MergeAccess(P.Access, BaseField->getAccess())) {
-      Diag(Loc, diag::warn_shadow_field)
-        << FieldName << RD << Base << DeclIsField;
-      Diag(BaseField->getLocation(), diag::note_shadow_field);
-      Bases.erase(It);
-    }
+    if (AS_none !=
+        CXXRecordDecl::MergeAccess(P.Access, BaseField->getAccess())) {
+      Diag(Loc, diag::warn_shadow_field)
+        << FieldName << RD << Base << DeclIsField;
+      Diag(BaseField->getLocation(), diag::note_shadow_field);
+      Bases.erase(It);
+    }
   }
 }