gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gcl-devel] Re: [Axiom-developer] GCC/GCL warning messages


From: Camm Maguire
Subject: [Gcl-devel] Re: [Axiom-developer] GCC/GCL warning messages
Date: 05 Mar 2007 13:46:50 -0500
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Greetings!

Gabriel Dos Reis <address@hidden> writes:

> On Fri, 2 Mar 2007, Camm Maguire wrote:
> 
> | > | C99 language semantics now assume that pointers to different types
> | > | point to different memory locations, which is obvious nonsense, but
> | > | part of the new standard.
> | >
> | > That statement is obviously untrue.
> | >
> | > The non-aliasing rule, which has always been there since I don't know
> | > when -- certainly, it is part of C89, and it is not a C99 invention --
> | > says that the following is undefined behaviour
> | >
> | >       double z;
> | >       *(long*)&z = 1;
> | >       printf ("%g", z);
> | >
> | > That makes perfect sense.  Why would you think it is nonsense?
> | >
> | > | You might want to add -fno-strict-aliasing option to the GCC command 
> line.
> | >
> | > Instead of papering over the incorrectness, I would suggest to fix it.
> | >
> |
> | Agreed.
> 
> Interestingly, ECL -- another CL implementation with KCL as
> grandfather -- invokes GCC explicitly with -fstrict-aliasing, e.g. it
> is explicitly askign the compiler to exploit aliasing rules, when
> compiling generated C codes.
> 

Great!  Isn't this enabled by -O2 and higher anyway:

     `-O2' turns on all optimization flags specified by `-O'.  It also
     turns on the following optimization flags:
          -fforce-mem
          -foptimize-sibling-calls
          -fstrength-reduce
          -fcse-follow-jumps  -fcse-skip-blocks
          -frerun-cse-after-loop  -frerun-loop-opt
          -fgcse   -fgcse-lm   -fgcse-sm
          -fdelete-null-pointer-checks
          -fexpensive-optimizations
          -fregmove
          -fschedule-insns  -fschedule-insns2
          -fsched-interblock -fsched-spec
          -fcaller-saves
          -fpeephole2
          -freorder-blocks  -freorder-functions
          -fstrict-aliasing
          -falign-functions  -falign-jumps
          -falign-loops  -falign-labels


Still can't reproduce any aliasing warnings with gcl 2.6.8pre and gcc
4.1.2.  Could someone please tell me what I'm missing?

Take care,

> -- Gaby
> 
> 
> 

-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah




reply via email to

[Prev in Thread] Current Thread [Next in Thread]