[all-commits] [llvm/llvm-project] 2073dd: Redeclare Objective-C property accessors inside th...

adrian-prantl via All-commits all-commits at lists.llvm.org
Fri Nov 8 08:23:33 PST 2019


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

  Changed paths:
    M clang/include/clang/AST/DeclBase.h
    M clang/include/clang/AST/DeclObjC.h
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/DeclObjC.cpp
    M clang/lib/Analysis/BodyFarm.cpp
    M clang/lib/CodeGen/CGObjC.cpp
    M clang/lib/CodeGen/CGObjCGNU.cpp
    M clang/lib/CodeGen/CGObjCMac.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
    M clang/lib/Frontend/Rewrite/RewriteObjC.cpp
    M clang/lib/Index/IndexDecl.cpp
    M clang/lib/Sema/SemaDeclObjC.cpp
    M clang/lib/Sema/SemaExprObjC.cpp
    M clang/lib/Sema/SemaObjCProperty.cpp
    M clang/lib/Sema/SemaPseudoObject.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp
    M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
    M clang/test/AST/ast-dump-decl-json.m
    M clang/test/Analysis/Inputs/expected-plists/nullability-notes.m.plist
    M clang/test/CodeGenObjC/debug-info-synthesis.m
    M clang/test/CodeGenObjC/debug-property-synth.m
    M clang/test/CodeGenObjC/debuginfo-properties.m
    M clang/test/CodeGenObjC/instance-method-metadata.m
    M clang/test/SemaObjC/iboutlet.m
    M clang/tools/libclang/CIndex.cpp

  Log Message:
  -----------
  Redeclare Objective-C property accessors inside the ObjCImplDecl in which they are synthesized.

This patch is motivated by (and factored out from)
https://reviews.llvm.org/D66121 which is a debug info bugfix. Starting
with DWARF 5 all Objective-C methods are nested inside their
containing type, and that patch implements this for synthesized
Objective-C properties.

1. SemaObjCProperty populates a list of synthesized accessors that may
   need to inserted into an ObjCImplDecl.

2. SemaDeclObjC::ActOnEnd inserts forward-declarations for all
   accessors for which no override was provided into their
   ObjCImplDecl. This patch does *not* synthesize AST function
   *bodies*. Moving that code from the static analyzer into Sema may
   be a good idea though.

3. Places that expect all methods to have bodies have been updated.

I did not update the static analyzer's inliner for synthesized
properties to point back to the property declaration (see
test/Analysis/Inputs/expected-plists/nullability-notes.m.plist), which
I believed to be more bug than a feature.

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

rdar://problem/53782400




More information about the All-commits mailing list