[Xorp-hackers] Alignment problem in xrl_args.cc on xScale
Bruce M Simpson
bms at incunabulum.net
Mon Oct 27 05:28:52 PDT 2008
There are only 2 other places where the alignment warning is triggered.
1. in packet.cc ArpHeader::assign().
uint8_t* is being cast to ArpHeader*, whose first member is uint16_t and
thus triggers the alignment warning.
This code seems to be dubious where strict alignment is concerned.
2. in vrrp_packet.cc VrrpHeader::assign().
In this case, the first member is a C-style bit-field contained in a
uint8_t.
Normally I wouldn't expect this to generate an error, it is possible
that the compiler is attempting to use ARM bit-field opcodes, although I
was under the impression these were only part of Thumb-2.
In both cases, we are casting an arbitrary uint8_t* pointer to a
structure type. The two alignment warnings in the XRL layer are easily
fixed by using extract_32(). However these further warnings refer to
aggregate types so we can't deal with them so easily.
I'm sure I saw issues like this with the STCP packet header in libxipc.
regards
BMS
More information about the Xorp-hackers
mailing list