From: Eli Friedman Date: Tue, 27 Jul 2010 19:14:53 +0000 (+0000) Subject: PR7724: Don't try to evaluate value-dependent expressions. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=787b0946959d1203d5bb95a298ee2e7286ded995;p=clang PR7724: Don't try to evaluate value-dependent expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109532 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 2816c4a613..4183ea3394 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -5815,7 +5815,7 @@ inline QualType Sema::CheckLogicalOperands( // C99 6.5.[13,14] // bitwise one. We do this when the LHS is a non-bool integer and the RHS // is a constant. if (lex->getType()->isIntegerType() && !lex->getType()->isBooleanType() && - rex->getType()->isIntegerType() && + rex->getType()->isIntegerType() && !rex->isValueDependent() && // Don't warn in macros. !Loc.isMacroID()) { // If the RHS can be constant folded, and if it constant folds to something diff --git a/test/SemaTemplate/dependent-expr.cpp b/test/SemaTemplate/dependent-expr.cpp index 9fa757107b..e25afce77a 100644 --- a/test/SemaTemplate/dependent-expr.cpp +++ b/test/SemaTemplate/dependent-expr.cpp @@ -40,3 +40,8 @@ namespace PR7198 { } }; } + +namespace PR7724 { + template int myMethod() + { return 2 && sizeof(OT); } +}