[Lldb-commits] [PATCH] D11790: Fix ObjC++ types Class and id being defined in C and C++ expressions.
Dawn Perchik via lldb-commits
lldb-commits at lists.llvm.org
Fri Aug 14 12:14:32 PDT 2015
dawn added a comment.
In http://reviews.llvm.org/D11790#221730, @spyffe wrote:
> Ooh, I'm reading the patch at the beginning of ClangUserExpression::Evaluate again and it does look like this patch sets language based on the language of the containing frame, and that affects what language the expression is parsed in.
Yep - and I agree that this is a good thing.
> I don't think it's appropriate to force the expression parser out of Objective-C or C++ mode in non-ObjC frames ...
But the parsing of ObjC conflicts with other languages. This is a real problem.
> For the same reason I think the idea of a target-level language isn't the right approach.
I agree here.
> Rather, I think there should be a setting that says "force all expressions to this language by default" that the user can set if they're debugging a process that prefers a particular language.
We have such a setting with target.language.
> By default, this setting would be Objective-C++
I disagree here - the default is (and should be) unknown.
In http://reviews.llvm.org/D11790#221770, @paulherman wrote:
> The idea is that, as I user, I do not expect the identifiers "Class" and "id" to not be available - I don't think I've seen a warning or notice about that when evaluating expressions.
> I believe that setting the language based on the current frame is a good guess. I think evaluating something in the language of the current frame is more common than evaluating something that is in ObjC++ and the current frame is C++.
I'm totally with Paul on this, and we've discussed this same issue in http://reviews.llvm.org/D11482, http://reviews.llvm.org/D11173 and http://reviews.llvm.org/D11102. It was Jim's belief that you would be in favor of using the frame too, but here it sounds like you *do* want to always be able to eval ObjC, which contradicts Jim and Greg. I believe the approach I took in http://reviews.llvm.org/D11102 is exactly what was requested from Greg and Jim. If you disagree, please talk to them, because Paul and I are stuck between two conflicting desires here, and we can't move forward. Note that my patch at http://reviews.llvm.org/D11102 still awaits your review.
More information about the lldb-commits