Hi,

Looks like one of the -O3 optimising steps are broken:

cat << EOF > powfcrash.cpp
#include <stdio.h>
#include <cmath>

class test
{
public:
        unsigned char y;
        void testfn(unsigned char);
};

void
test :: testfn(unsigned char x)
{
        y = x;
        float fr = expf(powf(y / 127.0f, 0.5f) * logf(25000.0f)) + 40.0f;
        printf("%f Result\n", fr);
}

int main()
{
        class test test;
        test.testfn(2.0);

        return (0);
}
EOF

g++48 -O3 -ffast-math -Wall -Wextra powfcrash.cpp

powfcrash.cpp: In member function 'void test::testfn(unsigned char)':
powfcrash.cpp:12:1: internal compiler error: Segmentation fault: 11
 test :: testfn(unsigned char x)
 ^
no stack trace because unwind library not available
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.


 g++48 -v
Using built-in specs.
COLLECT_GCC=g++48
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc48/gcc/x86_64-portbld-freebsd9.1/4.8.3/lto-wrapper
Target: x86_64-portbld-freebsd9.1
Configured with: ./../gcc-4.8.3/configure --disable-bootstrap --disable-nls 
--enable-gnu-indirect-function --libdir=/usr/local/lib/gcc48 
--libexecdir=/usr/local/libexec/gcc48 --program-suffix=48 
--with-as=/usr/local/bin/as --with-gmp=/usr/local 
--with-gxx-include-dir=/usr/local/lib/gcc48/include/c++/ 
--with-ld=/usr/local/bin/ld --with-libiconv-prefix=/usr/local 
--with-pkgversion='FreeBSD Ports Collection' --with-system-zlib 
--with-ecj-jar=/usr/local/share/java/ecj-4.5.jar 
--enable-languages=c,c++,objc,fortran,java --prefix=/usr/local 
--mandir=/usr/local/man --infodir=/usr/local/info/gcc48 
--build=x86_64-portbld-freebsd9.1
Thread model: posix
gcc version 4.8.3 (FreeBSD Ports Collection)

Thank you!

--HPS

Reply via email to