aprantl marked an inline comment as done.
aprantl added inline comments.
================
Comment at: clang/lib/CodeGen/CGDebugInfo.h:406
+ CGBuilderTy &Builder,
+ const ObjCContainerDecl *CD = nullptr);
----------------
rjmccall wrote:
> 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?
That certainly sounds like the more elegant solution. I didn't know enough
about Clang's ObjC implementation to understand whether this was feasible. Do
you happen to know where a good entry point for doing this would be?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D66121/new/
https://reviews.llvm.org/D66121
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits