https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70499

            Bug ID: 70499
           Summary: internal compiler error: in make_ssa_name_fn, at
                    tree-ssanames.c:266
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: matthias.hochsteger at tuwien dot ac.at
  Target Milestone: ---

The compiler crashes with the given code. Multiple (in fact probably all)
versions are affected. Tested versions are 4.7, 4.8, 4.9, 5.1, 5.3 and 6.0 (4.6
and earlier don't accept -mavx2). Exact versions and abort messages are given
below.

Thanks!

The code:
//////////////////////////////////////////////////////////
#include <immintrin.h>

struct SIMD {
  __m256d data;
  SIMD() {};
  SIMD (double val) { }
  SIMD(__m256d _data) { data = _data; }
  SIMD operator* (SIMD a) { return a; }
};

struct Foo {
  SIMD val;
  SIMD dval[2];
  __attribute__((__always_inline__)) SIMD & Value() throw() { return val; }
  __attribute__((__always_inline__)) Foo operator* ( const Foo & y) throw() 
    {
      Foo res;
      SIMD hx;
      SIMD hy;
      res.Value() = hx*hy;
      res.dval[0] = hx*hy;
      return res;
    }
};

template<typename Tx>  
__attribute__((__always_inline__)) void inlineFunc(Tx hx[]) {
    Tx x = hx[0], y = hx[1];
    Tx lam[1] = (x*y);
}

void FooBarFunc () {
  Foo adp[2];
  inlineFunc (adp);
}
//////////////////////////////////////////////////////////

Abort messages:
=================================================================
g++-4.7 -v
Using built-in specs.
COLLECT_GCC=g++-4.7
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.7.3-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.7 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-gnu-unique-object --disable-libmudflap --enable-plugin
--with-system-zlib --enable-objc-gc --with-cloog --enable-cloog-backend=ppl
--disable-cloog-version-check --disable-ppl-version-check --enable-multiarch
--disable-werror --with-arch-32=i686 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) 

g++-4.7 -mavx2 -O2 -c simd.cpp
simd.cpp:27:41: warning: always_inline function might not be inlinable
[-Wattributes]
simd.cpp: In function ‘void inlineFunc(Tx*) [with Tx = Foo]’:
simd.cpp:35:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.7/README.Bugs> for instructions.
Preprocessed source stored into /tmp/cc7UN6UV.out file, please attach this to
your bugreport.
ERROR: Cannot create report: [Errno 17] File exists:
'/var/crash/_usr_lib_gcc_x86_64-linux-gnu_4.7_cc1plus.1028.crash'
=================================================================
g++-4.8 -v
Using built-in specs.
COLLECT_GCC=g++-4.8
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.2-19ubuntu1'
--with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.8 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap
--enable-plugin --with-system-zlib --disable-browser-plugin
--enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686
--with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) 

g++-4.8 -mavx2 -O2 -c simd.cpp
simd.cpp:27:41: warning: always_inline function might not be inlinable
[-Wattributes]
 __attribute__((__always_inline__)) void inlineFunc(Tx hx[]) {
                                         ^
simd.cpp: In function ‘void FooBarFunc()’:
simd.cpp:34:19: internal compiler error: in make_ssa_name_fn, at
tree-ssanames.c:120
   inlineFunc (adp);
                   ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions.
Preprocessed source stored into /tmp/cc4OHJf8.out file, please attach this to
your bugreport.
ERROR: Cannot create report: [Errno 17] File exists:
'/var/crash/_usr_lib_gcc_x86_64-linux-gnu_4.8_cc1plus.1028.crash'


=================================================================
g++-4.9 -v
Using built-in specs.
COLLECT_GCC=g++-4.9
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
4.9.1-3ubuntu2~14.04.1' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.9 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify
--enable-plugin --with-system-zlib --disable-browser-plugin
--enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686
--with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.9.1 (Ubuntu 4.9.1-3ubuntu2~14.04.1) 

g++-4.9 -mavx2 -O2 -c simd.cpp
simd.cpp:27:41: warning: always_inline function might not be inlinable
[-Wattributes]
 __attribute__((__always_inline__)) void inlineFunc(Tx hx[]) {
                                         ^
simd.cpp: In function ‘void FooBarFunc()’:
simd.cpp:34:19: internal compiler error: in make_ssa_name_fn, at
tree-ssanames.c:136
   inlineFunc (adp);
                   ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.9/README.Bugs> for instructions.
Preprocessed source stored into /tmp/ccZAXDyC.out file, please attach this to
your bugreport.


=================================================================
g++-5 -v
Using built-in specs.
COLLECT_GCC=/usr/bin/g++-5
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
5.1.0-0ubuntu11~14.04.1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs
--enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-5 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=c++98 --enable-gnu-unique-object
--disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib
--disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686
--with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.1.0 (Ubuntu 5.1.0-0ubuntu11~14.04.1) 

g++-5 -mavx2 -O2 -c simd.cpp
simd.cpp:27:41: warning: always_inline function might not be inlinable
[-Wattributes]
 __attribute__((__always_inline__)) void inlineFunc(Tx hx[]) {
                                         ^
simd.cpp: In function ‘void FooBarFunc()’:
simd.cpp:34:19: internal compiler error: in make_ssa_name_fn, at
tree-ssanames.c:150
   inlineFunc (adp);
                   ^
0xc25cab make_ssa_name_fn(function*, tree_node*, gimple_statement_base*)
        ../../src/gcc/tree-ssanames.c:147
0xb05fa7 make_ssa_name
        ../../src/gcc/tree-ssanames.h:107
0xb05fa7 remap_ssa_name
        ../../src/gcc/tree-inline.c:280
0xb080af remap_gimple_op_r
        ../../src/gcc/tree-inline.c:901
0xc965a4 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hashset_traits>*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hashset_traits>*))
        ../../src/gcc/tree.c:11093
0x9020b4 walk_gimple_op(gimple_statement_base*, tree_node* (*)(tree_node**,
int*, void*), walk_stmt_info*)
        ../../src/gcc/gimple-walk.c:282
0xb06fbc remap_gimple_stmt
        ../../src/gcc/tree-inline.c:1729
0xb08e30 copy_bb
        ../../src/gcc/tree-inline.c:1788
0xb08e30 copy_cfg_body
        ../../src/gcc/tree-inline.c:2745
0xb08e30 copy_body
        ../../src/gcc/tree-inline.c:2984
0xb0ba06 expand_call_inline
        ../../src/gcc/tree-inline.c:4653
0xb0ba06 gimple_expand_calls_inline
        ../../src/gcc/tree-inline.c:4791
0xb0ba06 optimize_inline_calls(tree_node*)
        ../../src/gcc/tree-inline.c:4931
0xff06db early_inliner(function*)
        ../../src/gcc/ipa-inline.c:2689
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.


=================================================================
/usr/bin/c++ -v
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /build/gcc/src/gcc-5-20160209/configure --prefix=/usr
--libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/
--enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared
--enable-threads=posix --enable-libmpx --with-system-zlib --with-isl
--enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu
--disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object
--enable-linker-build-id --enable-lto --enable-plugin
--enable-install-libiberty --with-linker-hash-style=gnu
--enable-gnu-indirect-function --disable-multilib --disable-werror
--enable-checking=release
Thread model: posix
gcc version 5.3.0 (GCC) 

/usr/bin/c++ -mavx2 -O2 -c simd.cpp
simd.cpp:27:41: warning: always_inline function might not be inlinable
[-Wattributes]
 __attribute__((__always_inline__)) void inlineFunc(Tx hx[]) {
                                         ^
simd.cpp: In function ‘void FooBarFunc()’:
simd.cpp:34:19: internal compiler error: in make_ssa_name_fn, at
tree-ssanames.c:151
   inlineFunc (adp);
                   ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.archlinux.org/> for instructions.



=================================================================
g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/home/matthias/local/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure --prefix=/usr --disable-multilib
--disable-bootstrap --with-system-zlib --prefix=/home/matthias/local
--enable-languages=c,c++,lto --no-create --no-recursion
Thread model: posix
gcc version 6.0.0 20160321 (experimental) (GCC) 

g++ -mavx2 -O2 -c simd.cpp
simd.cpp:27:41: warning: always_inline function might not be inlinable
[-Wattributes]
 __attribute__((__always_inline__)) void inlineFunc(Tx hx[]) {
                                         ^~~~~~~~~~
simd.cpp: In function ‘void FooBarFunc()’:
simd.cpp:34:19: internal compiler error: in make_ssa_name_fn, at
tree-ssanames.c:266
   inlineFunc (adp);
                   ^
0xf2da17 make_ssa_name_fn(function*, tree_node*, gimple*)
        ../../gcc/tree-ssanames.c:263
0xda3684 make_ssa_name
        ../../gcc/tree-ssanames.h:111
0xda3684 remap_ssa_name
        ../../gcc/tree-inline.c:238
0xda9fd7 remap_gimple_op_r
        ../../gcc/tree-inline.c:867
0xfd0142 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
        ../../gcc/tree.c:11531
0xabf73b walk_gimple_op(gimple*, tree_node* (*)(tree_node**, int*, void*),
walk_stmt_info*)
        ../../gcc/gimple-walk.c:266
0xda450c remap_gimple_stmt
        ../../gcc/tree-inline.c:1713
0xda56fe copy_bb
        ../../gcc/tree-inline.c:1771
0xda6bb8 copy_cfg_body
        ../../gcc/tree-inline.c:2725
0xda6bb8 copy_body
        ../../gcc/tree-inline.c:2965
0xdac4c0 expand_call_inline
        ../../gcc/tree-inline.c:4664
0xdac4c0 gimple_expand_calls_inline
        ../../gcc/tree-inline.c:4804
0xdac4c0 optimize_inline_calls(tree_node*)
        ../../gcc/tree-inline.c:4944
0x1418e8c early_inliner(function*)
        ../../gcc/ipa-inline.c:2695
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Reply via email to