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.