On 11/16/2015 08:51 AM, Jeffrey Walton wrote:
I'm catching a hang under Debian's ARM64 (AARCH64) in a QEMU Chroot. The environment does not have a working debugger, so I have it roughly isolated to two conditions. I need to test -fno-devirtualize on a particular class (H and CPP files), and I want to ensure it does not cross pollinate out of the class. (Say, by, including the header in other header files). How do I apply -fno-devirtualize to just the class when it needs to be applied to a particular class's header file (and that header file is included elsewhere) ?
I'm not sure this is possible via an option (or #pragma optimize). -fdevirtualize applies to the call sites to a virtual functions, not to the virtual function definitions. The only approach that comes to mind is to annotate the callers with #pragma GCC optimize ("no-devirtualize"). That works in 5.0 and a simple test case but doesn't seem to work as I expect in 4.9. Martin