[Lldb-commits] [PATCH] D92063: [LLDB] RegisterInfoPOSIX_arm64 remove unused bytes from g/G packet

Michał Górny via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Nov 26 00:24:33 PST 2020


mgorny added a comment.

In D92063#2416162 <https://reviews.llvm.org/D92063#2416162>, @labath wrote:

> + at mgorny, as he's been navigating these waters lately...
>
> So... I presume we can't just slap `__attribute__((packed))` on the structure, because the kernel actually expects that the data structure will have the extra space for the padding. Is that so?
>
> Even if we can't, I'm wondering if it wouldn't be cleaner to use two structures for this. Something like:
>
>   LLVM_PACKED_START
>   struct GPR {
>     // as before...
>   };
>   /// Big comment explaining the purpose of padding
>   struct GPRBuffer: GPR {
>     uint32_t pad;
>   };
>   LLVM_PACKED_END
>
> and then using GPR or GPRBuffer accordingly. What do you think?

That would imply adding additional offset field to the register lists, wouldn't it? Not that I'm opposed — it might be reasonable to have the option to override the offset for system structs, coredumps...


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92063/new/

https://reviews.llvm.org/D92063



More information about the lldb-commits mailing list