* [Bug c++/108773] internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
@ 2023-02-13 13:04 ` kkeithle at redhat dot com
2023-02-13 13:05 ` marxin at gcc dot gnu.org
` (16 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: kkeithle at redhat dot com @ 2023-02-13 13:04 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #1 from kkeithle at redhat dot com ---
see https://bugzilla.redhat.com/show_bug.cgi?id=2169364
see https://bugzilla-attachments.redhat.com/attachment.cgi?id=1943849 for
preprocessed source file (too big to attach here)
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
2023-02-13 13:04 ` [Bug c++/108773] " kkeithle at redhat dot com
@ 2023-02-13 13:05 ` marxin at gcc dot gnu.org
2023-02-13 13:16 ` [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f marxin at gcc dot gnu.org
` (15 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: marxin at gcc dot gnu.org @ 2023-02-13 13:05 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2023-02-13
Ever confirmed|0 |1
CC| |marxin at gcc dot gnu.org
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
I can reproduce that I'm reducing that right now..
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
2023-02-13 13:04 ` [Bug c++/108773] " kkeithle at redhat dot com
2023-02-13 13:05 ` marxin at gcc dot gnu.org
@ 2023-02-13 13:16 ` marxin at gcc dot gnu.org
2023-02-13 13:18 ` marxin at gcc dot gnu.org
` (14 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: marxin at gcc dot gnu.org @ 2023-02-13 13:16 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|internal compiler error: in |[13 Regression] ICE in
|gimplify_var_or_parm_decl, |gimplify_var_or_parm_decl,
|at gimplify.cc:3058 |at gimplify.cc:3058
|compiling ceph |compiling ceph since
| |r13-4563-g1e1847612d7f169f
--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> ---
Started with r13-4563-g1e1847612d7f169f
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (2 preceding siblings ...)
2023-02-13 13:16 ` [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f marxin at gcc dot gnu.org
@ 2023-02-13 13:18 ` marxin at gcc dot gnu.org
2023-02-13 13:27 ` jakub at gcc dot gnu.org
` (13 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: marxin at gcc dot gnu.org @ 2023-02-13 13:18 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |needs-reduction
--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> ---
I'm not sure I'll be able to reduce it, btw. it crashes here:
#0 fancy_abort (file=file@entry=0x22c7288
"/home/marxin/Programming/gcc/gcc/gimplify.cc", line=line@entry=3058,
function=function@entry=0x22c6bab "gimplify_var_or_parm_decl") at
/home/marxin/Programming/gcc/gcc/diagnostic.cc:2219
#1 0x00000000007c1226 in gimplify_var_or_parm_decl (expr_p=0x7fffcfd6e338) at
/home/marxin/Programming/gcc/gcc/gimplify.cc:3058
#2 0x0000000000ebcb6b in gimplify_expr (expr_p=0x7fffcfd6e338,
pre_p=0x7fffffffbbb0, post_p=0x7fffffffb0f8, gimple_test_f=0xeab4c0
<is_gimple_addressable(tree)>, fallback=3) at
/home/marxin/Programming/gcc/gcc/gimplify.cc:16822
#3 0x0000000000ec36d6 in gimplify_addr_expr (expr_p=0x7fffba8c6940,
pre_p=0x7fffffffbbb0, post_p=0x7fffffffb0f8) at
/home/marxin/Programming/gcc/gcc/gimplify.cc:6561
#4 0x0000000000ebce24 in gimplify_expr (expr_p=0x7fffba8c6940,
pre_p=0x7fffffffbbb0, post_p=0x7fffffffb0f8, gimple_test_f=0xe6fb70
<is_gimple_val(tree_node*)>, fallback=1) at
/home/marxin/Programming/gcc/gcc/gimplify.cc:16408
#5 0x0000000000ec8822 in gimplify_expr (post_p=0x0, allow_ssa=true,
fallback=<optimized out>, gimple_test_f=<optimized out>, pre_p=0x7fffffffbbb0,
expr_p=0x7fffba8c6940) at /home/marxin/Programming/gcc/gcc/gimplify.cc:17425
#6 gimplify_arg (arg_p=0x7fffba8c6940, pre_p=0x7fffffffbbb0,
call_location=1422861833, allow_ssa=<optimized out>) at
/home/marxin/Programming/gcc/gcc/gimplify.cc:3504
#7 0x0000000000ecbf1c in gimplify_call_expr (expr_p=0x7fffcb66aad8,
pre_p=0x7fffffffbbb0, want_value=<optimized out>) at
/home/marxin/Programming/gcc/gcc/gimplify.cc:3789
#8 0x0000000000ebd0ec in gimplify_expr (expr_p=0x7fffcb66aad8,
pre_p=0x7fffffffbbb0, post_p=0x7fffffffb308, gimple_test_f=0xeafb80
<is_gimple_stmt(tree)>, fallback=0) at
/home/marxin/Programming/gcc/gcc/gimplify.cc:16333
#9 0x0000000000ebf4e7 in gimplify_stmt (stmt_p=<optimized out>,
seq_p=0x7fffffffbbb0) at /home/marxin/Programming/gcc/gcc/gimplify.cc:7219
...
(gdb) p debug_tree(decl)
<var_decl 0x7fffe72e9480 D.1471832
type <record_type 0x7ffff6fe43f0 allocator sizes-gimplified addressable
needs-constructing cxx-odr-p type_1 type_4 type_5 type_6 BLK
size <integer_cst 0x7ffff76420c0 constant 8>
unit-size <integer_cst 0x7ffff76420d8 constant 1>
align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff6fe43f0
fields <field_decl 0x7ffff6da0390 D.19596 type <record_type
0x7ffff6d96930 __new_allocator>
ignored decl_6 BLK
/home/marxin/Programming/testcases/ceph.ii:10806:11
size <integer_cst 0x7ffff7642000 constant 0> unit-size <integer_cst
0x7ffff7642000 0>
align:8 warn_if_not_align:0 offset_align 8 decl_not_flexarray: 0
offset <integer_cst 0x7ffff7642000 0>
bit-offset <integer_cst 0x7ffff7642048 constant 0> context
<record_type 0x7ffff6fe43f0 allocator> chain <function_decl 0x7ffff6d9ce00 __ct
>> context <namespace_decl 0x7ffff763c098 std>
full-name "class std::allocator<char>"
needs-constructor needs-destructor X() X(constX&) this=(X&) n_parents=1
use_template=3 interface-only
pointer_to_this <pointer_type 0x7ffff6d9d540> reference_to_this
<reference_type 0x7ffff6d9da80> chain <type_decl 0x7ffff6fe3980 allocator>>
addressable used ignored read BLK
/home/marxin/Programming/testcases/ceph.ii:322049:24 size <integer_cst
0x7ffff76420c0 8> unit-size <integer_cst 0x7ffff76420d8 1>
align:8 warn_if_not_align:0 context <function_decl 0x7ffff00ec500
hook_to_admin_command>>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (3 preceding siblings ...)
2023-02-13 13:18 ` marxin at gcc dot gnu.org
@ 2023-02-13 13:27 ` jakub at gcc dot gnu.org
2023-02-13 14:27 ` jakub at gcc dot gnu.org
` (12 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-13 13:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
Target Milestone|--- |13.0
Priority|P3 |P1
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (4 preceding siblings ...)
2023-02-13 13:27 ` jakub at gcc dot gnu.org
@ 2023-02-13 14:27 ` jakub at gcc dot gnu.org
2023-02-13 14:39 ` jakub at gcc dot gnu.org
` (11 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-13 14:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
It is on
admin_commands = { { "sync trace show name=search,type=CephString,req=false",
"sync trace show [filter_str]: show current multisite tracing information" },
{ "sync trace history
name=search,type=CephString,req=false", "sync trace history [filter_str]: show
history of multisite tracing information" },
{ "sync trace active
name=search,type=CephString,req=false", "show active multisite sync entities
information" },
{ "sync trace active_short
name=search,type=CephString,req=false", "show active multisite sync entities
entries" } };
in int RGWSyncTraceManager::hook_to_admin_command(), where admin_commands is:
std::list<std::array<std::string, 3> > admin_commands;
Though, -std=c++20:
#include <list>
#include <vector>
#include <string>
#include <initializer_list>
struct S
{
std::list<std::array<std::string, 3> > admin_commands;
void foo ();
};
void
S::foo ()
{
admin_commands = { { "sync trace show name=search,type=CephString,req=false",
"sync trace show [filter_str]: show current multisite tracing information" },
{ "sync trace history
name=search,type=CephString,req=false", "sync trace history [filter_str]: show
history of multisite tracing information" },
{ "sync trace active
name=search,type=CephString,req=false", "show active multisite sync entities
information" },
{ "sync trace active_short
name=search,type=CephString,req=false", "show active multisite sync entities
entries" } };
}
is rejected with
/tmp/1.C: In member function ‘void S::foo()’:
/tmp/1.C:18:137: error: no match for ‘operator=’ (operand types are
‘std::__cxx11::list<std::array<std::__cxx11::basic_string<char>, 3> >’ and
‘<brace-enclosed initializer list>’)
18 | { "sync trace active_short
name=search,type=CephString,req=false", "show active multisite sync entities
entries" } };
|
^
In file included from
/home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/list:66,
from /tmp/1.C:1:
/home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/bits/list.tcc:267:5:
note: candidate: ‘std::__cxx11::list<_Tp, _Alloc>& std::__cxx11::list<_Tp,
_Alloc>::operator=(const std::__cxx11::list<_Tp, _Alloc>&) [with _Tp =
std::array<std::__cxx11::basic_string<char>, 3>; _Alloc =
std::allocator<std::array<std::__cxx11::basic_string<char>, 3> >]’
267 | list<_Tp, _Alloc>::
| ^~~~~~~~~~~~~~~~~
/home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/bits/list.tcc:268:27:
note: no known conversion for argument 1 from ‘<brace-enclosed initializer
list>’ to ‘const
std::__cxx11::list<std::array<std::__cxx11::basic_string<char>, 3> >&’
268 | operator=(const list& __x)
| ~~~~~~~~~~~~^~~
In file included from
/home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/list:65:
/home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/bits/stl_list.h:929:7:
note: candidate: ‘std::__cxx11::list<_Tp, _Alloc>& std::__cxx11::list<_Tp,
_Alloc>::operator=(std::__cxx11::list<_Tp, _Alloc>&&) [with _Tp =
std::array<std::__cxx11::basic_string<char>, 3>; _Alloc =
std::allocator<std::array<std::__cxx11::basic_string<char>, 3> >]’
929 | operator=(list&& __x)
| ^~~~~~~~
/home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/bits/stl_list.h:929:24:
note: no known conversion for argument 1 from ‘<brace-enclosed initializer
list>’ to ‘std::__cxx11::list<std::array<std::__cxx11::basic_string<char>, 3>
>&&’
929 | operator=(list&& __x)
| ~~~~~~~^~~
/home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/bits/stl_list.h:947:7:
note: candidate: ‘std::__cxx11::list<_Tp, _Alloc>& std::__cxx11::list<_Tp,
_Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp =
std::array<std::__cxx11::basic_string<char>, 3>; _Alloc =
std::allocator<std::array<std::__cxx11::basic_string<char>, 3> >]’
947 | operator=(initializer_list<value_type> __l)
| ^~~~~~~~
/home/jakub/src/gcc/obj18i/usr/local/include/c++/13.0.1/bits/stl_list.h:947:46:
note: no known conversion for argument 1 from ‘<brace-enclosed initializer
list>’ to ‘std::initializer_list<std::array<std::__cxx11::basic_string<char>,
3> >’
947 | operator=(initializer_list<value_type> __l)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (5 preceding siblings ...)
2023-02-13 14:27 ` jakub at gcc dot gnu.org
@ 2023-02-13 14:39 ` jakub at gcc dot gnu.org
2023-02-13 15:54 ` jakub at gcc dot gnu.org
` (10 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-13 14:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Trying to cvise reduce now (from hand reduced testcase from 15M to 5M).
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (6 preceding siblings ...)
2023-02-13 14:39 ` jakub at gcc dot gnu.org
@ 2023-02-13 15:54 ` jakub at gcc dot gnu.org
2023-02-13 16:03 ` marxin at gcc dot gnu.org
` (9 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-13 15:54 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Reduced testcase:
struct __new_allocator {};
template <typename> using __allocator_base = __new_allocator;
struct allocator : __allocator_base<int> {};
template <class> struct initializer_list {
void *_M_array;
decltype(sizeof 0) __rebind;
};
struct basic_string {
basic_string(const char *, allocator = allocator());
~basic_string();
};
struct array {
basic_string _M_elems;
};
struct list {
void operator=(initializer_list<array>);
};
}
struct RGWSyncTraceManager {
std::list admin_commands;
void hook_to_admin_command();
};
void RGWSyncTraceManager::hook_to_admin_command() {
admin_commands = {{""}, {""}};
}
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (7 preceding siblings ...)
2023-02-13 15:54 ` jakub at gcc dot gnu.org
@ 2023-02-13 16:03 ` marxin at gcc dot gnu.org
2023-02-13 16:11 ` jakub at gcc dot gnu.org
` (8 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: marxin at gcc dot gnu.org @ 2023-02-13 16:03 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #8 from Martin Liška <marxin at gcc dot gnu.org> ---
Wow, you reduced that really fast Jakub!
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (8 preceding siblings ...)
2023-02-13 16:03 ` marxin at gcc dot gnu.org
@ 2023-02-13 16:11 ` jakub at gcc dot gnu.org
2023-02-13 17:06 ` jakub at gcc dot gnu.org
` (7 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-13 16:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Well, the reduction isn't exactly valid though, given how it defines
std::list/array.
I guess I could retry reduce with
class RGWSyncTraceManager { std::list<std::array<std::string, 3> >
admin_commands; public: int hook_to_admin_command(); };
int RGWSyncTraceManager::hook_to_admin_command() { admin_commands = { {
"sync trace show name=search,type=CephString,req=false", "sync trace show
[filter_str]: show current multis
ite tracing information" }, { "sync trace history
name=search,type=CephString,req=false", "sync trace history [filter_str]: show
history of multisite tracing inf
ormation" }, { "sync trace active
name=search,type=CephString,req=false", "show active multisite sync entities
information" }, { "sync trace
active_short name=search,type=CephString,req=false", "show active multisite
sync entities entries" } }; return 0; }
as forced last few lines.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (9 preceding siblings ...)
2023-02-13 16:11 ` jakub at gcc dot gnu.org
@ 2023-02-13 17:06 ` jakub at gcc dot gnu.org
2023-02-13 17:07 ` jakub at gcc dot gnu.org
` (6 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-13 17:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Slightly better testcase where basic_string, array and list are at least
templates, again -std=c++20:
namespace std {
struct __new_allocator {};
template <typename> using __allocator_base = __new_allocator;
struct allocator : __allocator_base<int> {};
template <class> struct initializer_list {
void *_M_array;
decltype(sizeof 0) __rebind;
};
template <typename T>
struct basic_string {
basic_string(const T *, allocator = allocator());
~basic_string();
};
using string = basic_string<char>;
template <typename T>
struct array {
T _M_elems;
};
template <typename T>
struct list {
list &operator=(initializer_list<T>);
};
}
struct RGWSyncTraceManager {
std::list<std::array<std::string>> admin_commands;
void hook_to_admin_command();
};
void RGWSyncTraceManager::hook_to_admin_command() {
admin_commands = {{""}, {""}};
}
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (10 preceding siblings ...)
2023-02-13 17:06 ` jakub at gcc dot gnu.org
@ 2023-02-13 17:07 ` jakub at gcc dot gnu.org
2023-02-27 10:33 ` rguenth at gcc dot gnu.org
` (5 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-13 17:07 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Even better don't make second initializer_list member __rebind:
namespace std {
struct __new_allocator {};
template <typename> using __allocator_base = __new_allocator;
struct allocator : __allocator_base<int> {};
template <class> struct initializer_list {
void *_M_array;
decltype(sizeof 0) _M_len;
};
template <typename T>
struct basic_string {
basic_string(const T *, allocator = allocator());
~basic_string();
};
using string = basic_string<char>;
template <typename T>
struct array {
T _M_elems;
};
template <typename T>
struct list {
list &operator=(initializer_list<T>);
};
}
struct RGWSyncTraceManager {
std::list<std::array<std::string>> admin_commands;
void hook_to_admin_command();
};
void RGWSyncTraceManager::hook_to_admin_command() {
admin_commands = {{""}, {""}};
}
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (11 preceding siblings ...)
2023-02-13 17:07 ` jakub at gcc dot gnu.org
@ 2023-02-27 10:33 ` rguenth at gcc dot gnu.org
2023-03-07 3:01 ` jason at gcc dot gnu.org
` (4 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-02-27 10:33 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> ---
The variable is built from
#0 build_local_temp (type=<record_type 0x7ffff6a6dc78 allocator>)
at /space/rguenther/src/gcc/gcc/cp/tree.cc:559
#1 0x000000000110fdc1 in force_target_expr (
type=<record_type 0x7ffff6a6dc78 allocator>,
init=<constructor 0x7ffff6a827c8>, complain=3)
at /space/rguenther/src/gcc/gcc/cp/tree.cc:932
#2 0x0000000001119933 in bot_manip (tp=0x7fffffffbcb8,
walk_subtrees=0x7fffffffbc54, data_=0x7fffffffbcc0)
at /space/rguenther/src/gcc/gcc/cp/tree.cc:3181
#3 0x0000000001dc81e0 in walk_tree_1 (tp=0x7fffffffbcb8,
func=0x111965a <bot_manip(tree*, int*, void*)>, data=0x7fffffffbcc0,
pset=0x0,
lh=0x1124208 <cp_walk_subtrees(tree_node**, int*, tree_node*
(*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false,
default_hash_traits<tree_node*> >*)>) at
/space/rguenther/src/gcc/gcc/tree.cc:11355
#4 0x000000000111aeaf in break_out_target_exprs (
t=<target_expr 0x7ffff68bf7e0>, clear_location=true)
at /space/rguenther/src/gcc/gcc/cp/tree.cc:3366
#5 0x0000000000d208e9 in convert_default_arg (
type=<record_type 0x7ffff6a6dc78 allocator>,
arg=<target_expr 0x7ffff68bf7e0>, fn=<function_decl 0x7ffff6a6fb00 __ct >,
parmnum=1, complain=3) at /space/rguenther/src/gcc/gcc/cp/call.cc:9198
...
where build_local_temp doesn't add the variable to any BIND
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (12 preceding siblings ...)
2023-02-27 10:33 ` rguenth at gcc dot gnu.org
@ 2023-03-07 3:01 ` jason at gcc dot gnu.org
2023-03-08 3:35 ` jason at gcc dot gnu.org
` (3 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jason at gcc dot gnu.org @ 2023-03-07 3:01 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (13 preceding siblings ...)
2023-03-07 3:01 ` jason at gcc dot gnu.org
@ 2023-03-08 3:35 ` jason at gcc dot gnu.org
2023-03-09 21:26 ` cvs-commit at gcc dot gnu.org
` (2 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jason at gcc dot gnu.org @ 2023-03-08 3:35 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #13 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #5)
> /tmp/1.C:18:137: error: no match for ‘operator=’ (operand types are
Curiously, changing #include <vector> to #include <array> reproduces the ICE:
#include <list>
#include <array>
#include <string>
struct A {
std::list<std::array<std::string, 3> > stuff;
void foo();
};
void A::foo() {
stuff = { { "", "" }, { "", "" } };
}
The cvise testcase changes the allocator parm to by-value, which hits a
different bug than the original.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (14 preceding siblings ...)
2023-03-08 3:35 ` jason at gcc dot gnu.org
@ 2023-03-09 21:26 ` cvs-commit at gcc dot gnu.org
2023-03-09 21:30 ` jason at gcc dot gnu.org
2023-03-13 18:07 ` kkeithle at redhat dot com
17 siblings, 0 replies; 19+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-03-09 21:26 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #14 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Jason Merrill <jason@gcc.gnu.org>:
https://gcc.gnu.org/g:e0324e2629e25a90c13c68b4eef1e47b091970c3
commit r13-6566-ge0324e2629e25a90c13c68b4eef1e47b091970c3
Author: Jason Merrill <jason@redhat.com>
Date: Mon Mar 6 22:57:57 2023 -0500
c++: allocator temps in list of arrays [PR108773]
The optimization to reuse the same allocator temporary for all string
constructor calls was breaking on this testcase, because the temps were
already in the argument to build_vec_init, and replacing them with
references to one slot got confused with calls at multiple levels (for the
initializer_list backing array, and then again for the array member of the
std::array). Fixed by reusing the whole TARGET_EXPR instead of pulling out
the slot; gimplification ensures that it's only initialized once.
I also moved the check for initializing a std:: class down into the tree
walk, and handle multiple temps within a single array element
initialization.
PR c++/108773
gcc/cp/ChangeLog:
* init.cc (find_allocator_temps_r): New.
(combine_allocator_temps): Replace find_allocator_temp.
(build_vec_init): Adjust.
gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/initlist-array18.C: New test.
* g++.dg/cpp0x/initlist-array19.C: New test.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (15 preceding siblings ...)
2023-03-09 21:26 ` cvs-commit at gcc dot gnu.org
@ 2023-03-09 21:30 ` jason at gcc dot gnu.org
2023-03-13 18:07 ` kkeithle at redhat dot com
17 siblings, 0 replies; 19+ messages in thread
From: jason at gcc dot gnu.org @ 2023-03-09 21:30 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #15 from Jason Merrill <jason at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/108773] [13 Regression] ICE in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph since r13-4563-g1e1847612d7f169f
2023-02-13 12:54 [Bug c++/108773] New: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.cc:3058 compiling ceph kkeithle at redhat dot com
` (16 preceding siblings ...)
2023-03-09 21:30 ` jason at gcc dot gnu.org
@ 2023-03-13 18:07 ` kkeithle at redhat dot com
17 siblings, 0 replies; 19+ messages in thread
From: kkeithle at redhat dot com @ 2023-03-13 18:07 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #16 from kkeithle at redhat dot com ---
Can confirm that the fix included in fedora gcc-13.0.1-0.7 works and I have now
successfully built ceph in fedora koji.
https://koji.fedoraproject.org/koji/taskinfo?taskID=98654634
^ permalink raw reply [flat|nested] 19+ messages in thread