[Bug c++/93549] New: [10 Regression] ICE / Segfault in constexpr expansion involving vector_size(16) short COND_EXPR
kretz at kde dot org
gcc-bugzilla@gcc.gnu.org
Mon Feb 3 12:38:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93549
Bug ID: 93549
Summary: [10 Regression] ICE / Segfault in constexpr expansion
involving vector_size(16) short COND_EXPR
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: kretz at kde dot org
Target Milestone: ---
Test case (https://godbolt.org/z/_ErsXE):
struct simd {
using _Short8 [[gnu::vector_size(16)]] = short;
_Short8 _M_data;
constexpr simd(short x) : _M_data{x, x, x, x, x, x, x, x} {}
constexpr friend unsigned operator==(simd __lhs, simd __rhs) {
_Short8 __tmp = __lhs._M_data == __rhs._M_data;
using _UShort = unsigned short;
auto __bools = __tmp ? _UShort(1) : _UShort(0);
unsigned __bits = 0;
for (int i = 0; i < 8; ++i)
__bits |= __bools[i] << i;
return __bits;
}
};
auto f()
{
constexpr auto tmp = simd(1) == simd(2);
return tmp;
}
internal compiler error: Segmentation fault
21 | constexpr auto tmp = simd(1) == simd(2);
| ^
0xfeaf4f crash_signal
/home/mkretz/src/gcc/gcc/toplev.c:328
0x8da817 find_array_ctor_elt
/home/mkretz/src/gcc/gcc/cp/constexpr.c:2950
0x8e8e80 cxx_eval_array_reference
/home/mkretz/src/gcc/gcc/cp/constexpr.c:3202
0x8df51a cxx_eval_constant_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:5635
0x8de093 cxx_eval_constant_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:5746
0x8dd872 cxx_eval_binary_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:2751
0x8dd872 cxx_eval_constant_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:5612
0x8de093 cxx_eval_constant_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:5746
0x8dd897 cxx_eval_binary_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:2757
0x8dd897 cxx_eval_constant_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:5612
0x8e72be cxx_eval_store_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:4294
0x8de545 cxx_eval_constant_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:5357
0x8de093 cxx_eval_constant_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:5746
0x8ddb36 cxx_eval_constant_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:6002
0x8def29 cxx_eval_constant_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:5424
0x8dde77 cxx_eval_loop_expr
/home/mkretz/src/gcc/gcc/cp/constexpr.c:4910
0x8dde77 cxx_eval_constant_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:5972
0x8df45d cxx_eval_statement_list
/home/mkretz/src/gcc/gcc/cp/constexpr.c:4837
0x8df45d cxx_eval_constant_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:5873
0x8de969 cxx_eval_constant_expression
/home/mkretz/src/gcc/gcc/cp/constexpr.c:5877
More information about the Gcc-bugs
mailing list