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

Reply via email to