]> granicus.if.org Git - clang/commitdiff
Comments for r189494
authorDavid Blaikie <dblaikie@gmail.com>
Wed, 28 Aug 2013 20:24:55 +0000 (20:24 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Wed, 28 Aug 2013 20:24:55 +0000 (20:24 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189504 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGDebugInfo.cpp

index 09202bbbb83420d55a005525f76769a71df100f1..f9570abef745e84df84c9bb28f4c8ef2709464bd 100644 (file)
@@ -1124,9 +1124,14 @@ CollectCXXMemberFunctions(const CXXRecordDecl *RD, llvm::DIFile Unit,
         E = RD->decls_end(); I != E; ++I) {
     if (const CXXMethodDecl *Method = dyn_cast<CXXMethodDecl>(*I)) {
       // Reuse the existing member function declaration if it exists
+      // It may be associated with the declaration of the type & should be
+      // reused as we're building the definition.
       llvm::DenseMap<const FunctionDecl *, llvm::WeakVH>::iterator MI =
           SPCache.find(Method->getCanonicalDecl());
       if (MI == SPCache.end()) {
+        // If the member is implicit, lazily create it when we see the
+        // definition, not before. (an ODR-used implicit default ctor that's
+        // never actually code generated should not produce debug info)
         if (!Method->isImplicit())
           EltTys.push_back(CreateCXXMemberFunction(Method, Unit, RecordTy));
       } else