[PATCH] D22871: Fix incorrect -Wtautological-constant-out-of-range warnings with enums

Ismail Badawi via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 27 10:07:15 PDT 2016


ibadawi updated this revision to Diff 65763.
ibadawi added a comment.

Remove extra blank line added by accident


https://reviews.llvm.org/D22871

Files:
  lib/Sema/SemaChecking.cpp

Index: lib/Sema/SemaChecking.cpp
===================================================================
--- lib/Sema/SemaChecking.cpp
+++ lib/Sema/SemaChecking.cpp
@@ -7075,6 +7075,12 @@
     return IntRange(C.getIntWidth(QualType(T, 0)), BT->isUnsignedInteger());
   }
 
+  /// Returns the "target" range of a given integral type.
+  static IntRange forTargetOfType(ASTContext &C, QualType T) {
+    return forTargetOfCanonicalType(C,
+                                    T->getCanonicalTypeInternal().getTypePtr());
+  }
+
   /// Returns the "target" range of a canonical integral type, i.e.
   /// the range of values expressible in the type.
   ///
@@ -7492,7 +7498,9 @@
   QualType OtherT = Other->getType();
   if (const auto *AT = OtherT->getAs<AtomicType>())
     OtherT = AT->getValueType();
-  IntRange OtherRange = IntRange::forValueOfType(S.Context, OtherT);
+  IntRange OtherRange = S.getLangOpts().CPlusPlus
+                            ? IntRange::forValueOfType(S.Context, OtherT)
+                            : IntRange::forTargetOfType(S.Context, OtherT);
   unsigned OtherWidth = OtherRange.Width;
 
   bool OtherIsBooleanType = Other->isKnownToHaveBooleanValue();


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22871.65763.patch
Type: text/x-patch
Size: 1181 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160727/464597f0/attachment.bin>


More information about the cfe-commits mailing list