[all-commits] [llvm/llvm-project] 901cc4: Debug Info: Nest Objective-C property function dec...

adrian-prantl via All-commits all-commits at lists.llvm.org
Fri Nov 8 15:14:06 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 901cc4a4bc5257d100338e6c318b96b022d554ee
      https://github.com/llvm/llvm-project/commit/901cc4a4bc5257d100338e6c318b96b022d554ee
  Author: Adrian Prantl <aprantl at apple.com>
  Date:   2019-11-08 (Fri, 08 Nov 2019)

  Changed paths:
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/CodeGen/CGDebugInfo.h
    A clang/test/CodeGenObjC/debug-info-objc-property-dwarf5.m

  Log Message:
  -----------
  Debug Info: Nest Objective-C property function decls inside their container.

This has the nice side-effect of also fixing a crash in Clang.

Starting with DWARF 5 we are emitting ObjC method declarations as
children of their containing entity. This worked for interfaces, but
didn't consider the case of synthessized properties. When a property
of a protocol is synthesized in an interface implementation the
ObjCMethodDecl that was passed to CGF::StartFunction was the property
*declaration* which obviously couldn't have a containing
interface. This patch passes the containing interface all the way
through to CGDebugInfo, so the function declaration can be created
with the correct parent (= the class implementing the protocol).

rdar://problem/53782400

Differential Revision: https://reviews.llvm.org/D66121




More information about the All-commits mailing list