Admittedly I was on mobile when I wrote that so I didn't have code to look
at.  I assumed from the pattern and the few function signatures I saw that
GPR etc were inheriting from thread_state_t, and that was how the cast
worked at all.  A quick look at the code suggests this is not the case
though.

On Mon, Dec 4, 2017 at 6:08 PM Vedant Kumar <v...@apple.com> wrote:

> On Dec 4, 2017, at 6:02 PM, Zachary Turner <ztur...@google.com> wrote:
>
> It almost looks to me like this should be using aggregation instead of
> inheritance. That would add a 3rd option (mark it mutable).
>
>
> I don't have my head wrapped around your suggestion. Do you mean that
> 'const GPR &' and friends should be made mutable members of RegisterContext?
>
> thanks,
> vedant
>
> That said, nothing wrong with using this approach either
> On Mon, Dec 4, 2017 at 5:43 PM Vedant Kumar via Phabricator via
> lldb-commits <lldb-commits@lists.llvm.org> wrote:
>
>> vsk created this revision.
>> Herald added a subscriber: javed.absar.
>>
>> A few methods in RegisterContext classes accept const objects which are
>> cast to a non-const thread_state_t. Instead of dropping const-ness, it
>> might be simpler and more ergonomic to just not mark the objects const.
>>
>> This fixes a slew of warnings.
>>
>> One alternative is to drop const-ness in a C++-friendly way, e.g:
>>
>>   const_cast<thread_state_t>(static_cast<thread_state_t>(&X))
>>
>> This would still leave us in a situation where some RegisterContext
>> methods accept const objects and others don't, and it doesn't seem
>> feasible to apply const everywhere here, because of non-const methods
>> like SetRegisterDataFrom_LC_THREAD.
>>
>>
>> https://reviews.llvm.org/D40821
>>
>> Files:
>>   source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
>>   source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm.cpp
>>   source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm.h
>>   source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm64.cpp
>>   source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm64.h
>>   source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_i386.cpp
>>   source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_i386.h
>>   source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_x86_64.cpp
>>   source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_x86_64.h
>>   source/Plugins/Process/Utility/RegisterContextDarwin_arm.h
>>   source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h
>>   source/Plugins/Process/Utility/RegisterContextDarwin_i386.h
>>   source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h
>>   source/Plugins/Process/Utility/RegisterContextMach_arm.cpp
>>   source/Plugins/Process/Utility/RegisterContextMach_arm.h
>>   source/Plugins/Process/Utility/RegisterContextMach_i386.cpp
>>   source/Plugins/Process/Utility/RegisterContextMach_i386.h
>>   source/Plugins/Process/Utility/RegisterContextMach_x86_64.cpp
>>   source/Plugins/Process/Utility/RegisterContextMach_x86_64.h
>>
>> _______________________________________________
>> lldb-commits mailing list
>> lldb-commits@lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>>
>
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to