This code fails to link (i.e. TOLERANCE is forgotten):
class silhwrap {
        void purge_points();
        static const float TOLERANCE = 0.3;
};
void silhwrap::purge_points() {
         float a = TOLERANCE;
};
int main() {}


Using built-in specs.
Configured with: /esat/alexandria1/stefaan/src/gcc/main/configure --prefix=/esat
                                                                               
                                                             
/olympia/opt/gcc-4.0 --enable-languages=c,c++
Thread model: posix
gcc version 4.0.0 20050107 (experimental)
 /esat/olympia/opt/gcc-4.0/libexec/gcc/i686-pc-linux-gnu/4.0.0/cc1plus -quiet -v
                                                                               
                                                               -D_GNU_SOURCE
testi.cpp -quiet -dumpbase testi.cpp -mtune=pentiumpro -auxbase t              
                                                                               
                                                esti -version -o /tmp/ccxha7Sc.s
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-
                                                                               
                                                             
gnu/4.0.0/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c
                                                                               
                                                              ++/4.0.0
 /esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c
                                                                               
                                                             
++/4.0.0/i686-pc-linux-gnu
 /esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c
                                                                               
                                                              ++/4.0.0/backward
 /esat/olympia/opt/gcc-4.0/include
 /esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/include
 /usr/include
End of search list.
GNU C++ version 4.0.0 20050107 (experimental) (i686-pc-linux-gnu)
        compiled by GNU C version 3.4.3 20041125 (Gentoo Linux 3.4.3-r1, ssp-3.4
                                                                               
                                                              .3-0, pie-8.7.7).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
 as -V -Qy -o /tmp/ccuxVYdj.o /tmp/ccxha7Sc.s
GNU assembler version 2.15 (i686-pc-linux-gnu) using BFD version 2.15
 /esat/olympia/opt/gcc-4.0/libexec/gcc/i686-pc-linux-gnu/4.0.0/collect2 --eh-fra
                                                                               
                                                              me-hdr -m elf_i386
-dynamic-linker /lib/ld-linux.so.2 -o testi /usr/lib/crt1.o /                  
                                                                               
                                            usr/lib/crti.o
/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/crtbegi              
                                                                               
                                                n.o
-L/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0 -L/esat/olympia/   
                                                                               
                                                          
opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../.. /tmp/ccuxVYdj.o -lstdc++ -l
                                                                               
                                                              m -lgcc_s -lgcc
-lc -lgcc_s -lgcc /esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linu               
                                                                               
                                               x-gnu/4.0.0/crtend.o 
/usr/lib/crtn.o
/tmp/ccuxVYdj.o(.text+0x7): In function `silhwrap::purge_points()':
: undefined reference to `silhwrap::TOLERANCE'
collect2: ld returned 1 exit status
[EMAIL PROTECTED] /tmp]# /esat/olympia/opt/gcc-4.0/bin/g++ -v -o testi 
testi.cpp 
Using built-in specs.
Configured with: /esat/alexandria1/stefaan/src/gcc/main/configure
--prefix=/esat/olympia/opt/gcc-4.0 --enable-languages=c,c++
Thread model: posix
gcc version 4.0.0 20050107 (experimental)
 /esat/olympia/opt/gcc-4.0/libexec/gcc/i686-pc-linux-gnu/4.0.0/cc1plus -quiet -v
-D_GNU_SOURCE testi.cpp -quiet -dumpbase testi.cpp -mtune=pentiumpro -auxbase
testi -version -o /tmp/ccCQipqK.s
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory
"/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 
/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0
 
/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/i686-pc-linux-gnu
 
/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/backward
 /esat/olympia/opt/gcc-4.0/include
 /esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/include
 /usr/include
End of search list.
GNU C++ version 4.0.0 20050107 (experimental) (i686-pc-linux-gnu)
        compiled by GNU C version 3.4.3 20041125 (Gentoo Linux 3.4.3-r1,
ssp-3.4.3-0, pie-8.7.7).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
 as -V -Qy -o /tmp/cc0M4nYl.o /tmp/ccCQipqK.s
GNU assembler version 2.15 (i686-pc-linux-gnu) using BFD version 2.15
 /esat/olympia/opt/gcc-4.0/libexec/gcc/i686-pc-linux-gnu/4.0.0/collect2
--eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o testi
/usr/lib/crt1.o /usr/lib/crti.o
/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/crtbegin.o
-L/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0
-L/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../..
/tmp/cc0M4nYl.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc
/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/crtend.o 
/usr/lib/crtn.o
/tmp/cc0M4nYl.o(.text+0x7): In function `silhwrap::purge_points()':
: undefined reference to `silhwrap::TOLERANCE'
collect2: ld returned 1 exit status

-- 
           Summary: static const float initialization ignored
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: stefaandr at hotmail dot com
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19320

Reply via email to