DescriptionBackground compiler should validate CHA decisions before committing the code.
CHA::HasOverride skips non-finalized classes when looking for overrides which means that we will install incorrect code if some subclass with an override was finalized while compilation was in progress.
To catch situations like this we record the number of finalized subclasses that class had
when CHA made the first negative decision about it (e.g. that it has no subclasses or that it has no overrides for some function) and before installing the code we check that number of subclasses matches.
Additionally renamed "leaf classes" to "guarded classes" because those classes are not necessarily leaf.
R=fschneider@google.com
BUG=
Committed: https://github.com/dart-lang/sdk/commit/6bb73bd2e41f9847e4b7a24bbd4d50d41a6536cf
Patch Set 1 #
Total comments: 8
Patch Set 2 : address comments #
Messages
Total messages: 6 (1 generated)
|