[Lldb-commits] [PATCH] D40821: Fix const-correctness in RegisterContext methods, NFC

Vedant Kumar via lldb-commits lldb-commits at lists.llvm.org
Mon Dec 4 18:08:16 PST 2017


> On Dec 4, 2017, at 6:02 PM, Zachary Turner <zturner at 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 at lists.llvm.org <mailto:lldb-commits at 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 <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 at lists.llvm.org <mailto:lldb-commits at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits <http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20171204/de9aded4/attachment.html>


More information about the lldb-commits mailing list