aboutsummaryrefslogtreecommitdiff
path: root/include/clang
diff options
context:
space:
mode:
authorCraig Silverstein <csilvers2000@yahoo.com>2010-11-16 07:16:25 +0000
committerCraig Silverstein <csilvers2000@yahoo.com>2010-11-16 07:16:25 +0000
commita437ad3ec5b407ede394d74e6f9f463fa3657dbe (patch)
tree3d8cab3738ce7c04c1af84fb09462fb6a9cc387b /include/clang
parent11b39d48702e3f494c71eed0ede0c3d27c54160e (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.h3
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 {