[cfe-dev] When should a RecordDecl be invalid?

Nico Weber thakis at chromium.org
Fri Dec 20 09:38:02 PST 2013


I've been looking at PR18284, where we have two RecordDecls, one the
subclass of the other, and we go and mark the superclass RecordDecl as
invalid, while keeping the subclass valid. This ends up confusing the code
that computes the subclass's layout, since that only checks if the subclass
is valid and then asserts that all superclasses are valid.

Is the bug that they layout code assumes that "record valid => superclass
records valid", or is the bug that the code that marks the superclass as
invalid doesn't mark all subclasses invalid too?

Likewise, should a class being valid imply that all its methods and fields
are valid? One possible fix for PR18284 is to stop marking a class invalid
when one of its methods is invalid (this is currently done in some cases,
but not in all), but that doesn't seem like the right fix.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20131220/c9fb2c46/attachment.html>

More information about the cfe-dev mailing list