riccibruno added inline comments.
================ Comment at: lib/Sema/SemaTemplate.cpp:6311 if (isa<CXXUuidofExpr>(E)) { - Converted = TemplateArgument(ArgResult.get()); + Converted = TemplateArgument(ArgResult.get()->IgnoreImpCasts()); break; ---------------- A remark which I hope is relevant. Please ignore it if I am off the mark, or if it is obvious. I was looking at which of the `Expr::Ignore*` function to use for something else and it seems that `IgnoreParenImpCasts()` is *not* equivalent to doing `IgnoreParens()` + `IgnoreImpCasts()` until reaching a fixed point. This is very surprising given the name, and given that `IgnoreParenCasts()` *is* equivalent to doing `IgnoreParens()` + `IgnoreCasts()` until reaching a fixed point. From my notes: > * `Expr *IgnoreParenImpCasts() LLVM_READONLY` > Ought to be IgnoreParens() + IgnoreImpCasts() until fixed point. > But actually only IgnoreParens + skip: > * ImplicitCastExpr > * MaterializeTemporaryExpr > * SubstNonTypeTemplateParmExpr Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D57114/new/ https://reviews.llvm.org/D57114 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits