summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/lang/cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2015-12-04 19:14:14 +0000
committerNico Weber <nicolasweber@gmx.de>2015-12-04 19:14:14 +0000
commit7123bca7fb6e1dde51be8329cfb523d2bb9ffadf (patch)
tree16bd67101ea91bfe4d1276cdf3a320f14e0b49f0 /lldb/packages/Python/lldbsuite/test/lang/cpp
parentfdc4b313d7c500b72d287323339fd7ec98cf4002 (diff)
downloadbcm5719-llvm-7123bca7fb6e1dde51be8329cfb523d2bb9ffadf.tar.gz
bcm5719-llvm-7123bca7fb6e1dde51be8329cfb523d2bb9ffadf.zip
Fix debug info for Objective-C properties from class extensions after r251874
After r251874, properties from class extensions no longer show up in ObjCInterfaceDecl::properties(). Make debug info emission explicitly look for properties in class extensions before looking at direct properties. Also add a test that checks for this. There are three interesting cases: 1. A property is only declared in a class extension, and the @implementation is in a different file. This used to generated a DIObjcProperty before r251874 and does again with this fix. 2. A property is declared as readonly in the class itself and redeclared as readwrite in a class extension. clang before r251874 put the DIObjcProperty on the first declaration. clang after r251874 didn't emit any DIObjcProperty, and clang with this fix puts it on the readwrite redeclaration (which is what lookup finds). This seems like a progression. 3. Like 2, but with an @implementation in the same file. In this case, the property debug info gets generated a second time through the ivar from the definition. In this case, lookup and declaration code need to agree on the line number so that the DIObjcProperty isn't emitted twice. In this case, clang before r251874 emitted one DIObjcProperty on the first declaration, clang with r251874 emitted one on the second declaration, and clang with this patch still does the latter. llvm-svn: 254750
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud