[PATCH] D23493: Fix PR28366: Teach the const-expression evaluator to be more fault tolerant with non-const enclosing local variables, or otherwise fold them if const.
    Faisal Vali via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Thu Aug 18 20:06:40 PDT 2016
    
    
  
faisalv added a comment.
Address Richard's comments.
================
Comment at: lib/Sema/SemaTemplateInstantiateDecl.cpp:190
@@ -189,3 +189,3 @@
   if (A->getCond()->isValueDependent() && !Cond->isValueDependent() &&
-      !Expr::isPotentialConstantExprUnevaluated(Cond, cast<FunctionDecl>(Tmpl),
+      !Expr::isPotentialConstantExprUnevaluated(Cond, cast<FunctionDecl>(New),
                                                 Diags)) {
----------------
rsmith wrote:
> Do we have existing test coverage for this (tests that fail with the ExprConstant change if we don't fix this at the same time)?
Yes we do.  That's how I realized it needed to be fixed - it's enable_if.cpp in SemaCXX that has the following test:
template <typename T> T templatedBar(T m) attribute((enable_if(m > 0, ""))) { return T(); }
https://reviews.llvm.org/D23493
    
    
More information about the cfe-commits
mailing list