Greetings!

Leo Butler <[email protected]> writes:

> On Fri, 11 Dec 2009, Camm Maguire wrote:
>
> < Greetings! OK just fixd the GCL bugs, which result in some of the
> < maxima bugs, and am ready for upload.
> < 
> < There are new gcc warnings, which I always like to clear up.  Perhaps
> < you might help by figuring out the currently blessed way of writing
> < the following:
> < 
> < #define GET_FAULT_ADDR(sig,code,sv,a) \
> <     ((void *)(((struct sigcontext *)(&code))->cr2))
> < #endif
> < 
> < sgbc.c: In function 'memprotect_handler':
> < sgbc.c:1620: warning: dereferencing pointer 'code.636' does break 
> strict-aliasing rules
> < sgbc.c:1620: note: initialized from here
>
> Camm, if I understand strict-aliasing [*] then the problem is that your macro 
> is casting a 
> (void *) while on line 1620, faddr is a (char *). 
>
> If you change your macro to cast a (char *), then this should fix this 
> problem. Again,
> from the above article, (char *) may refer to an alias of any object, so this 
> should
> not introduce any additional breakages of the strict aliasing rules.
>

Alas, this does not work:

c...@localhost:~/debian/gcl/gcl-2.6.8pre/o$ rm gbc.o; make gbc.o
gcc -c -Wall -DVOL=volatile -fsigned-char -pipe -O3 -fomit-frame-pointer  
-I/home/camm/debian/gcl/gcl-2.6.8pre/o -I../h -I../gcl-tk gbc.c  
In file included from gbc.c:1508:
sgbc.c: In function 'memprotect_handler':
sgbc.c:1620: warning: dereferencing pointer 'code.636' does break 
strict-aliasing rules
sgbc.c:1620: note: initialized from here
sgbc.c: In function 'memprotect_handler_test':
sgbc.c:1098: warning: dereferencing pointer 'code.547' does break 
strict-aliasing rules
sgbc.c:1098: note: initialized from here
c...@localhost:~/debian/gcl/gcl-2.6.8pre/o$ cpp -I../h gbc.c |grep code
  faddr=((char *)(((struct sigcontext *)(&code))->cr2));

The problem apparently lies with the sigcontext.

> Are your fixes available from CVS, and if so, where?
>

Yes, cvs -d :pserver:[email protected]:/sources/gcl -r
Version_2_6_8pre co -d gcl-2.6.8pre gcl

BTW, I have a maxima 5.20 build which I might upload now.  GCL is
uploaded.  There are a few issues -- two test failures due to a double
conversion error in GMP.  See [email protected] archives if interested
or if have workaround suggestions.

Take care,
-- 
Camm Maguire                                        [email protected]
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah


_______________________________________________
Gcl-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gcl-devel

Reply via email to