[cfe-commits] r104445 - in /cfe/trunk: lib/Sema/SemaDeclCXX.cpp test/SemaTemplate/dependent-expr.cpp

Douglas Gregor dgregor at apple.com
Sat May 22 10:12:29 PDT 2010


Author: dgregor
Date: Sat May 22 12:12:29 2010
New Revision: 104445

URL: http://llvm.org/viewvc/llvm-project?rev=104445&view=rev
Log:
Don't look for a destructor in a dependent type. Fixes PR7198.

Modified:
    cfe/trunk/lib/Sema/SemaDeclCXX.cpp
    cfe/trunk/test/SemaTemplate/dependent-expr.cpp

Modified: cfe/trunk/lib/Sema/SemaDeclCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclCXX.cpp?rev=104445&r1=104444&r2=104445&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDeclCXX.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDeclCXX.cpp Sat May 22 12:12:29 2010
@@ -4795,7 +4795,7 @@
 void Sema::FinalizeVarWithDestructor(VarDecl *VD, const RecordType *Record) {
   CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(Record->getDecl());
   if (!ClassDecl->isInvalidDecl() && !VD->isInvalidDecl() &&
-      !ClassDecl->hasTrivialDestructor()) {
+      !ClassDecl->hasTrivialDestructor() && !ClassDecl->isDependentContext()) {
     CXXDestructorDecl *Destructor = ClassDecl->getDestructor(Context);
     MarkDeclarationReferenced(VD->getLocation(), Destructor);
     CheckDestructorAccess(VD->getLocation(), Destructor,

Modified: cfe/trunk/test/SemaTemplate/dependent-expr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/dependent-expr.cpp?rev=104445&r1=104444&r2=104445&view=diff
==============================================================================
--- cfe/trunk/test/SemaTemplate/dependent-expr.cpp (original)
+++ cfe/trunk/test/SemaTemplate/dependent-expr.cpp Sat May 22 12:12:29 2010
@@ -24,3 +24,19 @@
     (void)(k % member);
   }
 }
+
+namespace PR7198 {
+  struct A
+  {
+    ~A() { }
+  };
+
+  template<typename T>
+  struct B {
+    struct C : A {};
+    void f()
+    {
+      C c = C();
+    }
+  };
+}





More information about the cfe-commits mailing list