You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This removes a set of static assertions that did not do what they were
supposed to do.
The static assertions were attempting to ensure that the functions are
different. However, the address of a function is *not* a constant
expression and cannot be used in a static assertion.
Furthermore, the static assert is either tautologically true or will be
caught as a compile error on the dispatch. The methods being checked
here are non-virtual. The PFN that was being computed is tautologically
different as there is no virtuality and the two methods must be
different (barring any ICF coalescing that may be performed by the
linker or by LTO). The method must exist, otherwise, the dispatch
itself will trigger a resolution failure.
Effectively, the static assertionss did not compute anything as a
result:
- the method's existence is checked by the dispatch
- the address of the function is always different
This was identified by building with GCC 7.
0 commit comments