[PATCH] ignore __declspec(novtable) on non-Windows platforms

Frédéric Riss friss at apple.com
Fri Jul 17 09:04:35 PDT 2015


+majnemer that implemented it in the first place.

> On Jul 17, 2015, at 4:45 AM, Aaron Ballman <aaron at aaronballman.com> wrote:
> 
> On Thu, Jul 16, 2015 at 8:42 PM, Bob Wilson <bob.wilson at apple.com> wrote:
>> Clang used to silently ignore __declspec(novtable) for all platforms, but it is now implemented for Windows. However, we don’t check if the target is Windows. This does not work when using the Itanium ABI, where the class layout for complex class hierarchies is stored in the vtable. Leaving the vtable uninitialized on non-Windows platforms does not work in that case. It might be possible to honor the novtable attribute in some simple cases and either report an error or ignore it in more complex situations, but it’s not clear if that would be worthwhile. There is also value in having a simple and predictable behavior, so I am proposed the attached patch which simply ignores novtable on non-Windows platforms.
> 
> MSVC supports an Itanium build target. What does __declspec(novtable)
> do there with the complex class layouts?
> 
> I don't have Visual Studio installed with support for Itanium,
> otherwise I would test this myself.
> 
> ~Aaron
> 
>> 
>> 
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits





More information about the cfe-commits mailing list