<div dir="ltr">Hi All,<div><br></div><div>We're working DWARF-5 support in clang, c++11 Defaulted, deleted member functions. </div><div>We're facing an issue while parsing attributes of a destructor which is defined out of class. as default.</div><div>as in</div><div>class foo {</div><div> public;</div><div> foo();</div><div> ~foo();</div><div>};</div><div>foo::foo() = default;</div><div>foo::~foo() = default;</div><div><br></div><div>Here's the code snippet of clang changes--</div><div><br></div><div>if (const auto *DXXC = dyn_cast<CXXDestructorDecl>(Method)) {<br>1624 if (DXXC->getCanonicalDecl()->isDeleted())<br>1625 SPFlags |= llvm::DISubprogram::SPFlagDeleted;<br>1626<br>1627 if (DXXC->getCanonicalDecl()->isDefaulted())<br>1628 SPFlags |= llvm::DISubprogram::SPFlagDefaultedInClass;<br>1629 else if (DXXC->isDefined()) {<br>1630 if (DXXC->getDefinition()->isDefaulted()) {<br>1631 SPFlags |= llvm::DISubprogram::SPFlagDefaultedOutOfClass;<br>1632 }<br>1633 else {<br>1634 SPFlags |= llvm::DISubprogram::SPFlagNotDefaulted;<br>1635 }<br>1636 }<br>1637 }<br></div><div><br></div><div>For, out of class destructor definition defaulted, as mentioned above. We're not able get
SPFlagDefaultedOutOfClass or
SPFlagNotDefaulted.</div><div><br></div><div>seems like their is no definition of destructor, even when, we are defining them out of class as default; ??</div><div> 1629 else if (DXXC->isDefined()) -- evaluates as false <br></div><div><br></div><div>On the other side, If we declare our destructor as virtual, then above checks passes gracefully -- suggesting clang created a non-trivial destructor definition. </div><div><br></div><div>Is this behavior okay ?? , -- this behavior is also prevalent in copy/move constructor and assignments. </div><div><br></div><div>Note-- For Constructor out of class definition as default -- clang create non-trivial constructor definition, and above check passes and we're are able to check capture the information about, whether the constructor is defaulted in class or out of class.</div><div><br></div><div>Any thoughts, greatly appreciated.</div><div><br></div><div>Thanks!</div><div>Sourabh Singh Tomar</div></div>