GCC ICE bug with segfault...

leon zadorin leonleon77@gmail.com
Mon Aug 22 08:47:00 GMT 2016


Hello,

I am not sure whether I can report a bug without an account in
bugzilla (account creation temporarily disabled on that site)

... so I am posting this here for the time being

GCC (trunk, rev 239646 -- but likely with earlier versions also, I
haven't had the chance to test those yet) appears to ICE with
segmentation fault given the following code (validity of which aside
for the moment):

#include <stdlib.h>
#include <string.h>

struct Blah {
    char * a;
};

template <typename T>
void Test(T & Obj) {
    auto && a(Obj.a);
    a = (char*)::malloc(1024 * 1024);
    ::memset(a + 28, 'X', 6);
}

int main() {
    Blah d;
    Test(d);
  return 0;
}

When compiled as
c++  -Wall main.c++

Causes GCC itself to crash hard:

main.c++: In function 'void Test(T&)':
main.c++:12:25: internal compiler error: Segmentation fault
  ::memset(a + 28, 'X', 6);


Whereas dropping -Wall prevents compiler from crashing.
Taking out the 'template' nature from the above code also allows
compiler not to crash (even with -Wall being used). Similar
(non-crash) outcome is if one simply takes out "+ 28" offset from the
code...

Target: x86_64-w64-mingw32
Configured with: ../gcc-trunk/configure --enable-checking=release
--disable-werror --disable-multilib --host=x86_64-w64-mingw32 --build
=x86_64-w64-mingw32 --target=x86_64-w64-mingw32
--prefix=/C/YYYYY/installed --enable-lto --program-prefix=
--enable-langu
ages=c,c++,lto --disable-nls --disable-libgcj --enable-threads=posix
--enable-seh-exceptions --enable-graphite
--with-sysroot=/C/YYYYY/installed
Thread model: posix
gcc version 7.0.0 20160822 (experimental) (GCC)

Perhaps it is something silly I have done with my GCC build, I will
try to retest with the released version 6.0 on mingw 64 target soon
also.

Best regards
leon.



More information about the Gcc-help mailing list