1. Redeclare Objective-C property accessors inside the ObjCImplDecl in (details)
Commit 2073dd2da702baca447efaf1879cb6151e8c6100 by Adrian Prantl
Redeclare Objective-C property accessors inside the ObjCImplDecl in
which they are synthesized.
This patch is motivated by (and factored out from) 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
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:
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp
The file was modifiedclang/test/CodeGenObjC/debug-info-synthesis.m
The file was modifiedclang/tools/libclang/CIndex.cpp
The file was modifiedclang/lib/Sema/SemaExprObjC.cpp
The file was modifiedclang/lib/Sema/SemaObjCProperty.cpp
The file was modifiedclang/test/AST/ast-dump-decl-json.m
The file was modifiedclang/lib/Frontend/Rewrite/RewriteObjC.cpp
The file was modifiedclang/include/clang/AST/DeclBase.h
The file was modifiedclang/test/CodeGenObjC/debuginfo-properties.m
The file was modifiedclang/lib/StaticAnalyzer/Core/CallEvent.cpp
The file was modifiedclang/lib/Analysis/BodyFarm.cpp
The file was modifiedclang/test/CodeGenObjC/debug-property-synth.m
The file was modifiedclang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
The file was modifiedclang/test/Analysis/Inputs/expected-plists/nullability-notes.m.plist
The file was modifiedclang/test/CodeGenObjC/instance-method-metadata.m
The file was modifiedclang/test/SemaObjC/iboutlet.m
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/lib/Index/IndexDecl.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp
The file was modifiedclang/lib/CodeGen/CGObjC.cpp
The file was modifiedclang/include/clang/AST/DeclObjC.h
The file was modifiedclang/lib/AST/DeclObjC.cpp
The file was modifiedclang/lib/Sema/SemaDeclObjC.cpp
The file was modifiedclang/lib/Sema/SemaPseudoObject.cpp
The file was modifiedclang/lib/CodeGen/CGObjCMac.cpp
The file was modifiedclang/lib/CodeGen/CGObjCGNU.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp