summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGCXX.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-09-09 23:17:18 +0000
committerAnders Carlsson <andersca@mac.com>2009-09-09 23:17:18 +0000
commit1ca52689e777fa011f84b8487d48f62a41b4a090 (patch)
tree60345f8f732466d0a065c9f05bd86a1d0db83f77 /clang/lib/CodeGen/CGCXX.cpp
parenta2e8333eed0ff0b3cbceaa63ec2ca09ee7244b0a (diff)
downloadbcm5719-llvm-1ca52689e777fa011f84b8487d48f62a41b4a090.tar.gz
bcm5719-llvm-1ca52689e777fa011f84b8487d48f62a41b4a090.zip
Use the right GlobalDecl type for destructors.
llvm-svn: 81398
Diffstat (limited to 'clang/lib/CodeGen/CGCXX.cpp')
-rw-r--r--clang/lib/CodeGen/CGCXX.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGCXX.cpp b/clang/lib/CodeGen/CGCXX.cpp
index 9963a9b048b..828892a2414 100644
--- a/clang/lib/CodeGen/CGCXX.cpp
+++ b/clang/lib/CodeGen/CGCXX.cpp
@@ -972,7 +972,13 @@ public:
}
void AddMethod(const CXXMethodDecl *MD, bool MorallyVirtual, Index_t Offset) {
- llvm::Constant *m = wrap(CGM.GetAddrOfFunction(GlobalDecl(MD), Ptr8Ty));
+ GlobalDecl GD;
+ if (const CXXDestructorDecl *Dtor = dyn_cast<CXXDestructorDecl>(MD))
+ GD = GlobalDecl(Dtor, Dtor_Complete);
+ else
+ GD = GlobalDecl(MD);
+
+ llvm::Constant *m = wrap(CGM.GetAddrOfFunction(GD, Ptr8Ty));
// If we can find a previously allocated slot for this, reuse it.
if (OverrideMethod(MD, m, MorallyVirtual, Offset))
return;
OpenPOWER on IntegriCloud