[ObjC][CodeGen] Fix missing debug info in situations where an instance and class...
authorRaphael Isemann <teemperor@gmail.com>
Tue, 30 Mar 2021 09:07:04 +0000 (11:07 +0200)
committerRaphael Isemann <teemperor@gmail.com>
Tue, 30 Mar 2021 09:07:16 +0000 (11:07 +0200)
commit1cbba533ec93864caab8ad2f3fd4293a56723307
treeb6c52dfafca568793a7fa8e8b4f38c7863e975d4
parentad613b149733873df262e72901f5fc2b78e8a7a8
[ObjC][CodeGen] Fix missing debug info in situations where an instance and class property have the same identifier

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.

Reviewed By: aprantl

Differential Revision: https://reviews.llvm.org/D99512
clang/lib/CodeGen/CGDebugInfo.cpp
clang/test/CodeGenObjC/debug-info-property-class-instance-same-name.m [new file with mode: 0644]