<div dir="ltr">The classes appear to be all forward declared intentionally, so you'd need to include a lot of missing files.  Just moving the destructor to cpp file should be pretty easy and still allow to keep the header footprint down, which speeds up build times.</div><br><div class="gmail_quote"><div dir="ltr">On Thu, Oct 22, 2015 at 11:22 AM Eugene Zelenko <<a href="mailto:eugene.zelenko@gmail.com">eugene.zelenko@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thu, Oct 22, 2015 at 11:15 AM, Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br>
> For the disassembler patch, the problem is you've defaulted the destructor<br>
> but you've got a unique_ptr to a forward declared class.  MSVC is actually<br>
> correct in failing to compile this, and I'm not sure why other compilers are<br>
> accepting it.  My guess is something to do with the order of includes from<br>
> the cpp file.<br>
><br>
> To fix this you need to remove the `default` keyword from the destructor and<br>
> provide an empty implementation of the destructor in DisassemblerLLVMC.cpp<br>
><br>
> This problem occurs in other places too.  In OperatingSystemGo.h the same<br>
> problem exists with DynamicRegisterInfo.  That's the one causing the<br>
> operating system patch to fail.<br>
><br>
> What compiler are you testing this with?  This should fail under clang as<br>
> well, I'm surprised it doesn't.  Are you using GCC by chance?<br>
><br>
> In any case, you'll need to fix all the occurrences of having a defaulted<br>
> destructor in a class with a std::unique_ptr of an incomplete type.<br>
<br>
I think including missing file will be better solution.<br>
<br>
I use trunk (~ week old) Clang.<br>
<br>
Eugene.<br>
</blockquote></div>