This is an archive of the discontinued LLVM Phabricator instance.

[ObjC][CodeGen] Fix missing debug info in situations where an instance and class property have the same identifier
ClosedPublic

Authored by teemperor on Mar 29 2021, 8:23 AM.

Details

Summary

Since the introduction of class properties in Objective-C it is possible to declare a class and an instance
property with the same identifier in an interface/protocol.

Right now Clang just generates debug information for whatever property comes first in the source file.
The second property is ignored as it's filtered out by the set of already emitted properties (which is just
using the identifier of the property to check for equivalence). I don't think generating debug info in this case
was never supported as the identifier filter is in place since 7123bca7fb6e1dde51be8329cfb523d2bb9ffadf
(which precedes the introduction of class properties).

This patch expands the filter to take in account identifier + whether the property is class/instance. This
ensures that both properties are emitted in this special situation.

Diff Detail

Event Timeline

teemperor requested review of this revision.Mar 29 2021, 8:23 AM
teemperor created this revision.
aprantl accepted this revision.Mar 29 2021, 10:24 AM
This revision is now accepted and ready to land.Mar 29 2021, 10:24 AM