[ovs-dev] [PATCH] ofproto-dpif: Fix GCC warning.
Justin Pettit
jpettit at nicira.com
Thu Dec 29 06:10:41 UTC 2011
Ben, do you think it's worth putting a small comment above the assignment? Otherwise, it looks kind of odd.
--Justin
On Dec 28, 2011, at 10:50 PM, Ethan Jackson wrote:
> Looks good.
>
> Ethan
>
> On Tue, Dec 27, 2011 at 14:32, Ben Pfaff <blp at nicira.com> wrote:
>> gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48) warned:
>>
>> ofproto/ofproto-dpif.c: In function 'bundle_send_learning_packets':
>> ofproto/ofproto-dpif.c:1835: warning: dereferencing type-punned pointer
>> will break strict-aliasing rules
>>
>> I agree that its analysis matches what the C standard says. This commit
>> fixes the problem and avoids the warning.
>>
>> The assignment to 'port' isn't actually necessary. I included it because
>> I like to have a variable with the correct type near the use of that type
>> through a "void *". Then "grep" for that type is more effective, and the
>> compiler will be able to diagnose any later change to (in this case) the
>> type of the first parameter to send_packet().
>>
>> Signed-off-by: Ben Pfaff <blp at nicira.com>
>> ---
>> ofproto/ofproto-dpif.c | 8 +++++---
>> 1 files changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
>> index 1eb0b82..004991b 100644
>> --- a/ofproto/ofproto-dpif.c
>> +++ b/ofproto/ofproto-dpif.c
>> @@ -1828,11 +1828,13 @@ bundle_send_learning_packets(struct ofbundle *bundle)
>> if (e->port.p != bundle) {
>> struct ofpbuf *learning_packet;
>> struct ofport_dpif *port;
>> + void *port_void;
>> int ret;
>>
>> - learning_packet = bond_compose_learning_packet(bundle->bond, e->mac,
>> - e->vlan,
>> - (void **)&port);
>> + learning_packet = bond_compose_learning_packet(bundle->bond,
>> + e->mac, e->vlan,
>> + &port_void);
>> + port = port_void;
>> ret = send_packet(port, learning_packet);
>> ofpbuf_delete(learning_packet);
>> if (ret) {
>> --
>> 1.7.2.5
>>
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> http://openvswitch.org/mailman/listinfo/dev
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
More information about the dev
mailing list