rjmccall added a comment.

I think the right fix here is to call `CheckPlaceholderExpr` in 
`ActOnDecltypeExpression` / `HandleExprEvaluationContextForTypeof` before the 
original unevaluated context is exited.  You can then change the type-building 
routines to assert that they aren't given a placeholder.  The current ordering 
probably also causes unwanted behavior with expressions like 
`decltype(&functionTemplate<int>)` that should be getting resolved to a single 
template within the unevaluated context so that the template specialization is 
not considered ODR-used.


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55662/new/

https://reviews.llvm.org/D55662



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to