[PATCH] D18425: [Sema] Make enable_if act correctly with value dependent conditions/arguments
    Richard Smith via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Mon Apr  4 17:10:46 PDT 2016
    
    
  
rsmith added inline comments.
================
Comment at: lib/Sema/SemaExpr.cpp:5218-5221
@@ -5209,1 +5217,6 @@
+      Fn, NDecl, LParenLoc, ArgExprs, RParenLoc, ExecConfig, IsExecConfig);
+
+  if (MakeCallInstantiationDependent)
+    BuiltCall.get()->setInstantiationDependent(true);
+  return BuiltCall;
 }
----------------
Hmm, good point, you might see a change in a contrived case like this:
  constexpr bool g() __attribute__((enable_if(true, ""))) { return false; }
  template<bool B> void f() {
    constexpr bool g() __attribute__((enable_if(B, "")));
    static_assert(g());
  }
... where we can diagnose the `static_assert` failure at template definition time if the call is not value-dependent.
http://reviews.llvm.org/D18425
    
    
More information about the cfe-commits
mailing list