[cfe-commits] r149404 - in /cfe/trunk: lib/Sema/SemaChecking.cpp test/Sema/conversion-64-32.c

Ted Kremenek kremenek at apple.com
Tue Jan 31 11:19:25 PST 2012


Author: kremenek
Date: Tue Jan 31 13:19:25 2012
New Revision: 149404

URL: http://llvm.org/viewvc/llvm-project?rev=149404&view=rev
Log:
Revert r149359.  This was a hack to a problem with an easy workaround, and it doesn't feel like general solution.

Modified:
    cfe/trunk/lib/Sema/SemaChecking.cpp
    cfe/trunk/test/Sema/conversion-64-32.c

Modified: cfe/trunk/lib/Sema/SemaChecking.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaChecking.cpp?rev=149404&r1=149403&r2=149404&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaChecking.cpp (original)
+++ cfe/trunk/lib/Sema/SemaChecking.cpp Tue Jan 31 13:19:25 2012
@@ -3699,24 +3699,15 @@
 
 /// Diagnose an implicit cast;  purely a helper for CheckImplicitConversion.
 static void DiagnoseImpCast(Sema &S, Expr *E, QualType SourceType, QualType T, 
-                            SourceLocation CContext, unsigned diag,
-                            bool pruneControlFlow = false) {
-  if (pruneControlFlow) {
-    S.DiagRuntimeBehavior(E->getExprLoc(), E,
-                          S.PDiag(diag)
-                            << SourceType << T << E->getSourceRange()
-                            << SourceRange(CContext));
-    return;
-  }
+                            SourceLocation CContext, unsigned diag) {
   S.Diag(E->getExprLoc(), diag)
     << SourceType << T << E->getSourceRange() << SourceRange(CContext);
 }
 
 /// Diagnose an implicit cast;  purely a helper for CheckImplicitConversion.
 static void DiagnoseImpCast(Sema &S, Expr *E, QualType T,
-                            SourceLocation CContext, unsigned diag,
-                            bool pruneControlFlow = false) {
-  DiagnoseImpCast(S, E, E->getType(), T, CContext, diag, pruneControlFlow);
+                            SourceLocation CContext, unsigned diag) {
+  DiagnoseImpCast(S, E, E->getType(), T, CContext, diag);
 }
 
 /// Diagnose an implicit cast from a literal expression. Does not warn when the
@@ -3922,8 +3913,7 @@
       return;
     
     if (SourceRange.Width == 64 && TargetRange.Width == 32)
-      return DiagnoseImpCast(S, E, T, CC, diag::warn_impcast_integer_64_32,
-                             /* pruneControlFlow */ true);
+      return DiagnoseImpCast(S, E, T, CC, diag::warn_impcast_integer_64_32);
     return DiagnoseImpCast(S, E, T, CC, diag::warn_impcast_integer_precision);
   }
 

Modified: cfe/trunk/test/Sema/conversion-64-32.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/conversion-64-32.c?rev=149404&r1=149403&r2=149404&view=diff
==============================================================================
--- cfe/trunk/test/Sema/conversion-64-32.c (original)
+++ cfe/trunk/test/Sema/conversion-64-32.c Tue Jan 31 13:19:25 2012
@@ -13,23 +13,3 @@
   int4  v127 = a;  // no warning.
   return v127; 
 }
-
-// <rdar://problem/10759934>
-// Don't warn about -Wshorten-64-to-32 in unreachable code.
-typedef unsigned int uint32_t;
-typedef unsigned long long uint64_t;
-int rdar10759934() {
-  uint32_t thing = 0;
-  uint64_t thing2 = 0;
-
-  switch (sizeof(thing2)) {
-  case 8:
-    break;
-  case 4:
-    thing = thing2; // no-warning
-  default:
-    break;
-  }
-
-  return 0;
-}





More information about the cfe-commits mailing list