On Monday, 3 June 2013 at 23:47:33 UTC, Jonathan M Davis wrote:
1. That'll only affect Windows unless we change the linking model on *nix
systems.


It is evolving on the C/C++ side, so I see no point in being more conservative than theses.

2. That'll only affect stuff that isn't exported from a shared library. There are plenty of cases where a class is exported from a shared library, and it has lots of functions on it which are supposed to be non-virtual.


Calling into/from a shared lib is doomed to be a performance hit as the called code is opaque to the compiler anyway. Which mean assuming the worse on the caller side and disabling most optimizations.

3. Doesn't doing this require that the _linker_ optimize out the virtuality of the functions for you? If that's the case, it won't work any time soon (if
ever), because we use the C linker, not our own.


I'm not sure what it imply for GCC, but this is actually not hard to implement in LLVM.

Reply via email to