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
