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

_______________________________________________
Xorp-hackers mailing list
[email protected]
http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers

Reply via email to