diff options
author | Craig Silverstein <csilvers2000@yahoo.com> | 2010-11-16 07:16:25 +0000 |
---|---|---|
committer | Craig Silverstein <csilvers2000@yahoo.com> | 2010-11-16 07:16:25 +0000 |
commit | a437ad3ec5b407ede394d74e6f9f463fa3657dbe (patch) | |
tree | 3d8cab3738ce7c04c1af84fb09462fb6a9cc387b /include/clang | |
parent | 11b39d48702e3f494c71eed0ede0c3d27c54160e (diff) |
Have CXXDeleteExpr::getDestroyedType return the actual destroyed type
in more situations. In particular, for code like
template<class T> void Fn() { T* x; delete x; }
getDestroyedType() will now return T rather than T*, as it would
before this change. On the other hand, for code like this:
template<class T> void Fn() { T x; delete x; }
getDestroyedType() will return an empty QualType(), since it doesn't
know what the actual destroyed type would be. Previously, it would
return T.
OKed by rjmccall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119334 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang')
-rw-r--r-- | include/clang/AST/ExprCXX.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/clang/AST/ExprCXX.h b/include/clang/AST/ExprCXX.h index 3b8ecf2930..78edd4beec 100644 --- a/include/clang/AST/ExprCXX.h +++ b/include/clang/AST/ExprCXX.h @@ -1150,6 +1150,9 @@ public: Expr *getArgument() { return cast<Expr>(Argument); } const Expr *getArgument() const { return cast<Expr>(Argument); } + /// \brief Retrieve the type being destroyed. If the type being + /// destroyed is a dependent type which may or may not be a pointer, + /// return an invalid type. QualType getDestroyedType() const; virtual SourceRange getSourceRange() const { |