aprantl accepted this revision.
aprantl added inline comments.
This revision is now accepted and ready to land.


================
Comment at: lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp:9818
+    if (ClangASTMetadata *metadata = GetMetadata(fun_decl))
+      return metadata->GetObjectPtrLanguage();
+  }
----------------
kastiglione wrote:
> kastiglione wrote:
> > aprantl wrote:
> > > Couple of questions for my understanding:
> > > 
> > > 1. Do you see any opportunities for this to spectacularly do the wrong 
> > > thing in an ObjectiveC++ program by guessing the wrong language? I 
> > > suppose this just tries to do a best effort?
> > > 
> > > 2. We're not using the DW_AT_APPLE_runtime_language attribute because 
> > > it's only attached to Objective-C classes?
> > > 
> > > 3. We're not using the DW_AT_language of the DW_TAG_compile_unit because 
> > > it won't help us in an ObjC++ program?
> > > We're not using the `DW_AT_APPLE_runtime_language` attribute because it's 
> > > only attached to Objective-C classes?
> > > We're not using the `DW_AT_language` of the `DW_TAG_compile_unit` because 
> > > it won't help us in an ObjC++ program?
> > 
> > I am not sure how to answer these too. While this function is new, the 
> > logic and this code path which calls `GetObjectPtrLanguage`, is taken from 
> > the existing implementation. In other words, how the debug info is made use 
> > of, hasn't changed.
> > Do you see any opportunities for this to spectacularly do the wrong thing 
> > in an ObjectiveC++ program by guessing the wrong language? I suppose this 
> > just tries to do a best effort?
> 
> I don't see any obvious ways to get it wrong, but can't rule it out entirely. 
> The way this change is implemented, there should be no way to have a 
> regression – everything that used to work should still work. There could be 
> some case out there where, in objc++, the wrong choice is made between 
> `this`/`self`, but that would result in the same "variable not found" message 
> you'd get today in that case (since the implementation should have no 
> regressions).
Sorry I didn't realize this was existing code! While there might be an 
opportunity the improve the existing implementation, that is orthogonal to this 
change. Carry on.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D145276/new/

https://reviews.llvm.org/D145276

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to