================
Comment at: include/clang/Parse/Parser.h:1689
@@ -1689,1 +1688,3 @@
+    DSC_template_type_arg, // template type argument context
+    DSC_constexpr // constexpr declaration context
   };
----------------
rsmith wrote:
> I think this should be called `DSC_condition`?
Agreed.  Will fix.

================
Comment at: lib/Sema/SemaExprCXX.cpp:2586-2589
@@ -2585,3 +2585,6 @@
 
-  return Condition;
+  return ActOnFinishFullExpr(Condition.get(),
+                             Condition.get()->getExprLoc(),
+                             false, /* DiscardedValue */
+                             Condition.get()->isCXX11ConstantExpr(Context));
 }
----------------
rsmith wrote:
> For the switch condition case, additional conversion will be performed on the 
> result of this function; you should delay the `ActOnFinishFullExpr` until 
> after those conversions in that case.
Ah, thank you for pointing that out (again; sorry I missed the suggestion 
before :-) ).  I suppose this new call to `ActOnFinishFullExpr` can just happen 
for `ConvertToBoolean` since `ActOnStartOfSwitchStmt` already has a call to 
`ActOnFinishFullExpr` after the said conversions happen.

This is the easiest thing to do now.  After this patch is committed I think 
there is a potential refactoring to consolidate the check and conversion logic 
for if, for, switch, and while so that there is only one call to 
`ActOnFinishFullExpr`.

http://reviews.llvm.org/D8978

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to