delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mail set sender to djgpp-workers-bounces using -f |
X-Recipient: | djgpp-workers AT delorie DOT com |
X-Authenticated: | #27081556 |
X-Provags-ID: | V01U2FsdGVkX1+IY+sAs06Io0ZxWvpf/tJlP4+lbVO9bsmVzL98rV |
gtgwFXG2aN2YAU | |
From: | Juan Manuel Guerrero <juan DOT guerrero AT gmx DOT de> |
To: | djgpp-workers AT delorie DOT com |
Subject: | Re: [patch] fix epunzip stric aliasing warnings |
Date: | Thu, 30 Jun 2011 22:55:35 +0200 |
User-Agent: | KMail/1.9.10 |
References: | <BANLkTinj8niun3H0Z6QTTsfQZ=8jD1rcSg AT mail DOT gmail DOT com> <201106302109 DOT 30225 DOT juan DOT guerrero AT gmx DOT de> <BANLkTin5NAdHrp9N1RkhZ_HosJjWLxdW_g AT mail DOT gmail DOT com> |
In-Reply-To: | <BANLkTin5NAdHrp9N1RkhZ_HosJjWLxdW_g@mail.gmail.com> |
MIME-Version: | 1.0 |
Message-Id: | <201106302255.35497.juan.guerrero@gmx.de> |
X-Y-GMX-Trusted: | 0 |
X-MIME-Autoconverted: | from quoted-printable to 8bit by delorie.com id p5UL13FL009732 |
Reply-To: | djgpp-workers AT delorie DOT com |
Am Donnerstag, 30. Juni 2011 schrieb Ozkan Sezer: [snip] > > Â Â Â Â * src/utils/djtar/epunzip.c (epunzip_read): Fix strict aaliasing warning. > > Â Â Â Â From Ozkan Sezer <sezeroz AT gmail DOT com> > > > > Just a note: Replacing (int *) casts onto char buffers by (__dj_int_a *) > is not necessary, as char* is already a may_alias type. > EDIT: Even those (__dj_short_a *) can be simplified into (short *) casts, > which I obviously missed doing in my initial version. In any case, the > result will be just the same but, IMO, the simplified ones will be easier > to read. Attached my 2nd version; pick as you like. The only reason why I changed your patch was that when I compiled with gcc453 I got the following warnings:: C:/DJGPP-2.04/BIN/make.exe -C utils gcc ... -c epunzip.c epunzip.c: In function 'epunzip_read': epunzip.c:161:7: warning: dereferencing type-punned pointer will break strict-aliasing rules epunzip.c:167:7: warning: dereferencing type-punned pointer will break strict-aliasing rules epunzip.c:173:7: warning: dereferencing type-punned pointer will break strict-aliasing rules epunzip.c:179:7: warning: dereferencing type-punned pointer will break strict-aliasing rules epunzip.c:285:8: warning: dereferencing type-punned pointer will break strict-aliasing rules epunzip.c:296:8: warning: dereferencing type-punned pointer will break strict-aliasing rules epunzip.c:302:8: warning: dereferencing type-punned pointer will break strict-aliasing rules epunzip.c:308:8: warning: dereferencing type-punned pointer will break strict-aliasing rules ld -s ../../../lib/crt0.o djtar.o oread.o epunzip.o untar.o unzip.o unlzw.o unlzh.o unpack.o inflate.o crypt.o util.o zmethod.o unbzip2.o bzlib.o decompress.o huffman.o randtable.o crctable.o ../../../lib/libc.a -o ../../../bin/djtar.exe c:/djgpp-2.04/bin/../lib/gcc/djgpp/4.53/libgcc.a -T c:/djgpp-2.04/lib/djgpp.djl ../../../hostbin/stubify.exe ../../../bin/djtar.exe Those warnings made reference to assigments like this one: timedate = *(int *)buffer; so I changed it. IIRC with gcc460 did not issued those warnings!!. Regards, Juan M. Guerrero
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |