rjmccall added inline comments.
================ Comment at: clang/lib/CodeGen/CGDebugInfo.h:406 + CGBuilderTy &Builder, + const ObjCContainerDecl *CD = nullptr); ---------------- aprantl wrote: > rjmccall wrote: > > Why does this have to be an extra parameter? The method's DC should be the > > container. > ``` > @protocol BarProto > @property struct Bar *bar; > @end > > @interface Foo <BarProto> > @end > > @implementation Foo {} > @synthesize bar = _bar; > @end > ``` > > The ObjCMethodDecl for the synthesized `bar` accessors is the method decl in > the protocol `BarProto`, as there is no method decl put into the AST inside > of `Foo`. Its DeclContext (lexical an regular) therefor is the Protocol, > which is not what we want as the decl context for a synthesized method called > `-[Foo setBar:]` in the debug info. Wait, really? That seems pretty unfortunate. Should we synthesize a real implementation method? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D66121/new/ https://reviews.llvm.org/D66121 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits