Michael137 wrote:

> > Essentially you're suggesting going back to pre-#90663, but only if we have 
> > ObjC/ObjC++ CUs in the current module? Seems sensible to me. Will also help 
> > prevent similar issues from creeping up in the future
> 
> Yes, I think that is the best approach do to do definition search (devil's in 
> the details of course), though I'm still not very happy about having to do 
> this search in the first place.
> 
> Overall, I think I'd like the "forceful completion" approach more, though I 
> understand it's fraught with more perils. I'm reasonably confident it can be 
> made to work in the expression evaluator, but things like "frame variable" 
> (which work directly on the module AST) are trickier, and I never got that to 
> work with -flimit-debug-info (ran out of time). This case should be slightly 
> simpler than that for two reasons:
> 
> * both of the types are in the same module (no need to jump to another module 
> to search for the definition)
> * You don't need to support cases where another class inherits from a 
> "forcefully completed" class
> 
> So, it _might_ be possible to implement something like this inside the 
> `CompilerType` class, where if you get asked for a property of a type, and 
> you see that it's one of these weird "maybe ObjC" types, you return the 
> relevant property of the ObjC counterpart instead.

Coming back to this now. IIUC, you're saying when we `CompleteType` one of 
these C++ forward declarations, if `FindDefintionDIE` returns an Objective-C 
definition, we bail out of starting/completing the definition and keep it as a 
C++ forward declaration but mark the `CompilerType` as one of those mixed 
decls? I guess what I'm not seeing is when and where we would stash away the 
Objective-C decl so the `CompilerType` can do the switch? Also, to make this 
work with the expression evaluator we need to make sure that when Clang asks 
for a complete definition using the `ExternalASTSource`, we will be able to 
provide one

https://github.com/llvm/llvm-project/pull/130768
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to