Em 23/09/2015 02:05, "Carsten Haitzler" <[email protected]> escreveu: > > On Wed, 23 Sep 2015 09:31:50 +0100 Tom Hacohen <[email protected]> said: > > > On 23/09/15 09:29, Carsten Haitzler wrote: > > > On Wed, 23 Sep 2015 09:21:54 +0100 Tom Hacohen <[email protected]> said: > > > > > >> You can't do it this way, you need a union. This will break some > > >> compiler's strict aliasing. > > > > > > it's a c compiler. it should happily allow this. i have casted it into > > > oblivion > > > - for GOOD REASONS. :) simply playing pointer math as intended. :) > > > > > > > It's something we've encountered before. We had plenty of issues with that. > > http://stackoverflow.com/questions/2906365/gcc-strict-aliasing-and-casting-through-a-union > > it actually works even with -O3. i could jump through hoops to make it jump > through some hoops and like fwrite it to a file and force it to become > in-memory bytes, but the compiler does it right already. i just didn't want to > add more to autofoo to detect. pretty much every detection sample works the > same way - using aliasing.
We already disable strict aliasing when compiling AFAIR. > > More info. > > > > -- > > Tom. > > > > >> -- > > >> Tom. > > >> > > >> On 23/09/15 08:49, Carsten Haitzler (Rasterman) wrote: > > >>> raster pushed a commit to branch master. > > >>> > > >>> http://git.enlightenment.org/apps/rage.git/commit/?id=1d492a68475d9d3c387691445dbeaacafd92a384 > > >>> > > >>> commit 1d492a68475d9d3c387691445dbeaacafd92a384 > > >>> Author: Carsten Haitzler (Rasterman) <[email protected]> > > >>> Date: Wed Sep 23 16:48:41 2015 +0900 > > >>> > > >>> rage - avoid htonl due to windows issues - makes things simpler > > >>> --- > > >>> src/bin/sha1.c | 22 +++++++++++++++------- > > >>> 1 file changed, 15 insertions(+), 7 deletions(-) > > >>> > > >>> diff --git a/src/bin/sha1.c b/src/bin/sha1.c > > >>> index 94661c3..84a943b 100644 > > >>> --- a/src/bin/sha1.c > > >>> +++ b/src/bin/sha1.c > > >>> @@ -1,8 +1,16 @@ > > >>> -#include <string.h> > > >>> -#include <arpa/inet.h> > > >>> +#include <Eina.h> > > >>> > > >>> #define SHSH(n, v) ((((v) << (n)) & 0xffffffff) | ((v) >> (32 - (n)))) > > >>> > > >>> +static inline int > > >>> +int_to_bigendian(int in) > > >>> +{ > > >>> + static const unsigned char test[4] = { 0x11, 0x22, 0x33, 0x44 }; > > >>> + static const unsigned int *test_i = (const unsigned int *)test; > > >>> + if (test_i[0] == 0x44332211) return eina_swap32(in); > > >>> + return in; > > >>> +} > > >>> + > > >>> int > > >>> sha1(unsigned char *data, int size, unsigned char *dst) > > >>> { > > >>> @@ -85,11 +93,11 @@ sha1(unsigned char *data, int size, unsigned char > > >>> *dst) } > > >>> } > > >>> > > >>> - t = htonl(digest[0]); digest[0] = t; > > >>> - t = htonl(digest[1]); digest[1] = t; > > >>> - t = htonl(digest[2]); digest[2] = t; > > >>> - t = htonl(digest[3]); digest[3] = t; > > >>> - t = htonl(digest[4]); digest[4] = t; > > >>> + t = int_to_bigendian(digest[0]); digest[0] = t; > > >>> + t = int_to_bigendian(digest[1]); digest[1] = t; > > >>> + t = int_to_bigendian(digest[2]); digest[2] = t; > > >>> + t = int_to_bigendian(digest[3]); digest[3] = t; > > >>> + t = int_to_bigendian(digest[4]); digest[4] = t; > > >>> > > >>> memcpy(dst, digest, 5 * 4); > > >>> return 1; > > >>> > > >> > > >> > > >> ------------------------------------------------------------------------------ > > >> Monitor Your Dynamic Infrastructure at Any Scale With Datadog! > > >> Get real-time metrics from all of your servers, apps and tools > > >> in one place. > > >> SourceForge users - Click here to start your Free Trial of Datadog now! > > >> http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 > > >> _______________________________________________ > > >> enlightenment-devel mailing list > > >> [email protected] > > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > >> > > > > > > > > > > > > ------------------------------------------------------------------------------ > > Monitor Your Dynamic Infrastructure at Any Scale With Datadog! > > Get real-time metrics from all of your servers, apps and tools > > in one place. > > SourceForge users - Click here to start your Free Trial of Datadog now! > > http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 > > _______________________________________________ > > enlightenment-devel mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > -- > ------------- Codito, ergo sum - "I code, therefore I am" -------------- > The Rasterman (Carsten Haitzler) [email protected] > > > ------------------------------------------------------------------------------ > Monitor Your Dynamic Infrastructure at Any Scale With Datadog! > Get real-time metrics from all of your servers, apps and tools > in one place. > SourceForge users - Click here to start your Free Trial of Datadog now! > http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel ------------------------------------------------------------------------------ Monitor Your Dynamic Infrastructure at Any Scale With Datadog! Get real-time metrics from all of your servers, apps and tools in one place. SourceForge users - Click here to start your Free Trial of Datadog now! http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
