<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/119583/">https://git.reviewboard.kde.org/r/119583/</a>
     </td>
    </tr>
   </table>
   <br />




<table bgcolor="#e0e0e0" width="100%" cellpadding="12" style="border: 1px gray solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>
   <h1 style="margin: 0; padding: 0; font-size: 10pt;">This change has been marked as submitted.</h1>
  </td>
 </tr>
</table>
<br />


<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for KDevelop.</div>
<div>By Craig T..</div>


<p style="color: grey;"><i>Updated Aug. 4, 2014, 10:14 a.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kdevelop
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Owing to a bug in GCC versions less than the 4.8, we encounter the following build failure when compiling kdevelop with GCC-4.7:</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;"><code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">KDevelop/languages/plugins/custom-definesandincludes/idefinesandincludesmanager.h:54: error: undefined reference to 'vtable for KDevelop::IDefinesAndIncludesManager'
KDevelop/languages/plugins/custom-definesandincludes/definesandincludesmanager.h:41: error: undefined reference to 'KDevelop::IDefinesAndIncludesManager::~IDefinesAndIncludesManager()'
KDevelop/languages/plugins/custom-definesandincludes/definesandincludesmanager.h:41: error: undefined reference to 'KDevelop::IDefinesAndIncludesManager::~IDefinesAndIncludesManager()'
CMakeFiles/kdevdefinesandincludesmanager.dir/definesandincludesmanager.cpp.o:definesandincludesmanager.cpp:function typeinfo for KDevelop::DefinesAndIncludesManager: error: undefined reference to 'typeinfo for KDevelop::IDefinesAndIncludesManager'</code></p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The GCC bugzilla suggests two workarounds:<br style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;" />
1. Defining this implicitly inlined, defaulted destructor outside the class<br style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;" />
2. Adding a <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">noexcept</code> declaration to derived destructors.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The second is obviously the most appealing and least intrusive fix, unfortunately, I couldn't seem to get it to compile owing to the concrete DefinesAndIncludesManager class becoming an incomplete type, possibly because the virtual IDefinesAndIncludesManager destructor was being inline'd out of existence (despite being marked virtual?), so I have implemented the former of the two workarounds and tagged it with a HACK. This fix was prompted by several callers to #kdevelop whom all seemed to be running afoul of this issue. As the 4.7 branch is still in moderate use, it may be worth it to just bite the bullet and apply this for now.</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Compiled with GCC-4.7.3</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>languages/plugins/custom-definesandincludes/definesandincludesmanager.h <span style="color: grey">(6d0097d)</span></li>

 <li>languages/plugins/custom-definesandincludes/definesandincludesmanager.cpp <span style="color: grey">(8d78531)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/119583/diff/" style="margin-left: 3em;">View Diff</a></p>






  </td>
 </tr>
</table>




  </div>
 </body>
</html>