]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
msg/msg_types.h: do not cast `ceph_entity_name` to `entity_name_t` for printing 26315/head
authorKefu Chai <kchai@redhat.com>
Thu, 7 Feb 2019 13:13:14 +0000 (21:13 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 13 Feb 2019 16:42:59 +0000 (00:42 +0800)
commitf1bfe9dbad669faacfde4e74f38fe92253e5a91e
tree25c1edb194d8a2ae5fc44834e7616f04dca16558
parent729104e5f2e7159edbce37ce89fc83c3726a7f56
msg/msg_types.h: do not cast `ceph_entity_name` to `entity_name_t` for printing

in GCC-9, `-Waddress-of-packed-member` is enabled, so we have warnings like:

src/msg/msg_types.h:142:41: warning: converting a packed 'const
ceph_entity_name' pointer (alignment 1) to a 'const entity_name_t'
pointer (alignment 8) may result in an unaligned pointer value
[-Waddress-of-packed-member]
  142 |   return out << *(const entity_name_t*)&addr;
      |                                         ^~~~

since the alignment of these two structures are different, we cannot
cast a structure with the alignment of 1 to a structure with the
alignment of 8. as the code generated by compiler accessing the members
of alignment 8 won't work with the members of alignment 1, we need to
create a temporary structure for printing it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/msg/msg_types.h