[cfe-commits] r122322 - in /cfe/trunk: lib/Sema/SemaChecking.cpp test/SemaTemplate/dependent-expr.cpp

Douglas Gregor dgregor at apple.com
Mon Dec 20 23:22:56 PST 2010


Author: dgregor
Date: Tue Dec 21 01:22:56 2010
New Revision: 122322

URL: http://llvm.org/viewvc/llvm-project?rev=122322&view=rev
Log:
Don't try to compute the value of a value-dependent expression when
checking trivial comparisons. Fixes PR8795.

Modified:
    cfe/trunk/lib/Sema/SemaChecking.cpp
    cfe/trunk/test/SemaTemplate/dependent-expr.cpp

Modified: cfe/trunk/lib/Sema/SemaChecking.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaChecking.cpp?rev=122322&r1=122321&r2=122322&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaChecking.cpp (original)
+++ cfe/trunk/lib/Sema/SemaChecking.cpp Tue Dec 21 01:22:56 2010
@@ -2527,6 +2527,9 @@
 
 void CheckTrivialUnsignedComparison(Sema &S, BinaryOperator *E) {
   BinaryOperatorKind op = E->getOpcode();
+  if (E->isValueDependent())
+    return;
+
   if (op == BO_LT && IsZero(S, E->getRHS())) {
     S.Diag(E->getOperatorLoc(), diag::warn_lunsigned_always_true_comparison)
       << "< 0" << "false" << HasEnumType(E->getLHS())

Modified: cfe/trunk/test/SemaTemplate/dependent-expr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/dependent-expr.cpp?rev=122322&r1=122321&r2=122322&view=diff
==============================================================================
--- cfe/trunk/test/SemaTemplate/dependent-expr.cpp (original)
+++ cfe/trunk/test/SemaTemplate/dependent-expr.cpp Tue Dec 21 01:22:56 2010
@@ -61,3 +61,13 @@
     }
   };
 }
+
+namespace PR8795 {
+  template <class _CharT> int test(_CharT t)
+  {
+    int data [] = {
+      sizeof(_CharT) > sizeof(char)
+    };
+    return data[0];
+  }
+}





More information about the cfe-commits mailing list