================
@@ -480,6 +485,54 @@ class LifetimeSafetySemaHelperImpl : public
LifetimeSafetySemaHelper {
return "";
}
+ const Expr *extractExpr(const Expr *E) {
+ // FIXME: Ideally, this should use IgnoreParenImpCasts().
+ // However, according to the comment on IgnoreParenImpCasts(),
+ // it is not fully equivalent to IgnoreImpCasts() + IgnoreParens().
+ // Once the FIXME in IgnoreParenImpCasts() is resolved,
+ // this can be switched to use IgnoreParenImpCasts().
+ const Expr *PureExpr = E->IgnoreImpCasts()->IgnoreParens();
----------------
suoyuan666 wrote:
Based on
https://github.com/llvm/llvm-project/blob/7a4d7733ae55ef8ac139d80e2b0f2bd1951ff5c8/clang/include/clang/AST/Expr.h#L921-L929
I have noticed that `IgnoreParenImpCasts `is not equivalent to `IgnoreImpCasts`
and `IgnoreParens`.
I thought that meant `MaterializeTemporaryExpr` would be skipped.
https://github.com/llvm/llvm-project/pull/199345
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits