I think there are several places where "strict-aliasing" isn't
followed.  I always compile with -fno-strict-aliasing to prevent
problems.

cheers
Miller

On Wed, Apr 18, 2007 at 11:19:20AM -0400, Hans-Christoph Steiner wrote:
> 
> So it seems that this bug in d_math.c is triggered by turning on the  
> Apple-recommended optimization flags:
> 
> http://sourceforge.net/tracker/index.php? 
> func=detail&aid=1692649&group_id=55736&atid=478070
> 
> I did notice that there are these warnings in the source.  IIRC,  
> optimization generally requires strict aliasing, so it seems that  
> these warnings are probably related to the above bug:
> 
> d_math.c: In function 'init_rsqrt':
> d_math.c:79: warning: dereferencing type-punned pointer will break
> strict-aliasing rules
> d_math.c: In function 'q8_rsqrt':
> d_math.c:93: warning: dereferencing type-punned pointer will break
> strict-aliasing rules
> d_math.c: In function 'q8_sqrt':
> d_math.c:101: warning: dereferencing type-punned pointer will break
> strict-aliasing rules
> 
> Here are the lines in question:
> 
> 79:    *(long *)(&f) = l;
> 93:    long l = *(long *)(&f);
> 101:   long l = *(long *)(&f);
> 
> Can anyone speak to what's this for and what it can be replaced with  
> so as to follow "strict-aliasing rules".  Maybe we could use  
> something like this instead (from http://www.cs.tut.fi/~jkorpela/ 
> round.html ):
> 
> #define round(x) ((x) < LONG_MIN-0.5 || (x) > LONG_MAX+0.5 ?\
> error() : ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
> 
> This requires that you have #include <limits.h> and that you have an  
> error handling routine called error which is a function of type long.
> 
> 
> .hc
> 
> ------------------------------------------------------------------------ 
> ----
> 
>                              kill your television
> 
> 
> 
> _______________________________________________
> PD-dev mailing list
> PD-dev@iem.at
> http://lists.puredata.info/listinfo/pd-dev

_______________________________________________
PD-dev mailing list
PD-dev@iem.at
http://lists.puredata.info/listinfo/pd-dev

Reply via email to