[lldb-dev] `ClangASTSource::IgnoreName` C++ false positives

Zachary Turner via lldb-dev lldb-dev at lists.llvm.org
Wed Oct 31 06:31:55 PDT 2018


It seems like we hit this issue in different contexts almost at the same
time (see my thread several days ago about “problem formatting value
objects”). That might at least give you some context about why things

I wish ObjC assumptions weren’t so deeply embedded, but alas it is the case.

Hopefully Jim or someone has ideas on how to fix this properly.
On Wed, Oct 31, 2018 at 5:08 AM Aleksandr Urakov <
aleksandr.urakov at jetbrains.com> wrote:

> Hello,
>
> I've tried to use a check like `if (m_ast_context->getLangOpts().ObjC)
> ...`, but it seems that it's always true. How can we else determine here if
> the Objective-C case is used? Or if we can't, where can we move `if (name
> == id_name || name == Class_name)` to make it Objective-C only? What
> regressions Objective-C users would have if we would remove this check from
> here?
>
> Regards,
> Alex
>
> On Wed, Oct 24, 2018 at 7:14 PM Aleksandr Urakov <
> aleksandr.urakov at jetbrains.com> wrote:
>
>> Hi all!
>>
>> There are two hardcoded names to ignore in the
>> `ClangASTSource::IgnoreName` function, "Class" and "id", they are valid
>> names for C++. It seems that they were added for the Objective-C case. But
>> the problem is that when they are in locals they are blocking expressions
>> evaluation.
>>
>> For example for the next code:
>>
>> int main() {
>>   int x = 5;
>>   int id = 7;
>>   int y = 8;
>>   return 0;
>> }
>>
>> if you'll break on `return 0` and will try to `print x`, then you'll get
>> a error like `no member named 'id' in namespace '$__lldb_local_vars'`.
>>
>> Do you have any ideas, how can we fix it?
>>
>> Regards,
>> Alex
>>
>
>
> --
> Aleksandr Urakov
> Software Developer
> JetBrains
> http://www.jetbrains.com
> The Drive to Develop
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20181031/460ddeff/attachment.html>


More information about the lldb-dev mailing list