Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Wed, 26 Feb 2003 15:38:40 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Wed, 26 Feb 2003 15:38:38 -0500 Received: from inti.inf.utfsm.cl ([200.1.21.155]:164 "EHLO inti.inf.utfsm.cl") by vger.kernel.org with ESMTP id ; Wed, 26 Feb 2003 15:38:35 -0500 Message-Id: <200302262047.h1QKlm0P001784@eeyore.valparaiso.cl> To: Falk Hueffner cc: jt@hpl.hp.com, Linux Kernel Mailing List Subject: Re: Invalid compilation without -fno-strict-aliasing In-Reply-To: Your message of "26 Feb 2003 17:04:05 BST." <873cmbghai.fsf@student.uni-tuebingen.de> Date: Wed, 26 Feb 2003 17:47:48 -0300 From: Horst von Brand Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1426 Lines: 37 Falk Hueffner said: > Horst von Brand writes: > > Jean Tourrilhes said: > > > if((stream + event_len) < ends) { > > > iwe->len = event_len; > > > memcpy(stream, (char *) iwe, event_len); > > > stream += event_len; > > > } > > > return stream; > > > } > > > > The compiler is free to assume char *stream and struct iw_event *iwe > > point to separate areas of memory, due to strict aliasing. > > The relevant paragraph of the C99 standard is: > > An object shall have its stored value accessed only by an lvalue > expression that has one of the following types: [...] > -- a character type. (char *) gives you a (pointer to) a character type. > I can't really spot any lvalue here that might violate this rule. It > would be nice if somebody could report a bug with a testcase. stream and (char *) iwe -- Dr. Horst H. von Brand User #22616 counter.li.org Departamento de Informatica Fono: +56 32 654431 Universidad Tecnica Federico Santa Maria +56 32 654239 Casilla 110-V, Valparaiso, Chile Fax: +56 32 797513 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/