DescriptionRevert of Add explicit destructors to DOM classes containing smart pointers to incomplete types (patchset #2 id:20001 of https://codereview.chromium.org/412483007/)
Reason for revert:
This should no longer be necessary; clang should be able to handle this now. Reverting this to test that theory.
Original issue's description:
> Add explicit destructors to DOM classes containing smart pointers to incomplete types
>
> Clang on Windows tries to declare the implicit virtual destructor of
> these classes so that it can diagnose mismatched exceptions
> specifications. This ends up requiring that the type of the smart
> pointer be complete, which it is not. This codepath does not fire on
> non-Windows platforms due to the Itanium C++ ABI key function
> optimization.
>
> It is possible to fix Clang to avoid performing semantic analysis of the
> destructor when it only needs to compute the exception specification,
> but it is prohibitively difficult. http://llvm.org/PR20337
>
> Another possible fix on the Blink side would be to make the smart
> pointer type complete by including the relevant header, which has the
> cost of increasing transitive header bloat. Instead, simply define the
> destructor out of line. This is also a minor object file size
> optimization, as now the destructor is only emitted once.
>
> R=thakis@chromium.org
> BUG=82385
>
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=178838
TBR=rnk@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=82385
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=189052
Patch Set 1 #
Created: 5 years, 11 months ago
(Patch set is too large to download)
Messages
Total messages: 4 (0 generated)
|