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

--- Comment #1 from Avi Kivity <avi at scylladb dot com> ---
I randomly looked at 023t.ssa (mainly because I recognized the acronym).

  _45 = frame_ptr_182(D)->__closure;
  _46 = _45->__this;
  frame_ptr_182(D)->D.2159984_4_7 =
_46->_config.memtable_to_cache_scheduling_group;
  _47 = &frame_ptr_182(D)->D.2159792_4_7;
  _48 = frame_ptr_182(D)->__closure;
  _49 = &_48->__old3;
  seastar::lw_shared_ptr<replica::memtable>::lw_shared_ptr (_47, _49);
  _50 = frame_ptr_182(D)->__closure;
  _51 = _50->__this;
  frame_ptr_182(D)->D.2159793_4_7.__this = _51;
  frame_ptr_182(D)->D.2159793_4_7.__old4 = frame_ptr_182(D)->D.2159792_4_7;
  _52 = frame_ptr_182(D)->__closure;
  _53 = _52->__newtabs;
  frame_ptr_182(D)->D.2159793_4_7.__newtabs = _53;
  _54 = &frame_ptr_182(D)->D.2159793_4_7;
  frame_ptr_182(D)->D.2160366_4_7 =
seastar::with_scheduling_group<replica::table::try_flush_memtable_to_sstable(replica::table::try_flush_memtable_to_sstable(seastar::lw_shared_ptr<replica::memtable>,
sstable_write_permit&&)::_ZN7replica5table29try_flush_memtable_to_sstableEN7seastar13lw_shared_ptrINS_8memtableEEEO20sstable_write_permit.Frame*)::<lambda()>::operator()(replica::table::try_flush_memtable_to_sstable(replica::table::try_flush_memtable_to_sstable(seastar::lw_shared_ptr<replica::memtable>,
sstable_write_permit&&)::_ZN7replica5table29try_flush_memtable_to_sstableEN7seastar13lw_shared_ptrINS_8memtableEEEO20sstable_write_permit.Frame*)::<lambda()>
mutable::_ZZN7replica5table29try_flush_memtable_to_sstableEN7seastar13lw_shared_ptrINS_8memtableEEEO20sstable_write_permitENUlvE_clEv.Frame*)::<lambda()>::operator()(replica::table::try_flush_memtable_to_sstable(replica::table::try_flush_memtable_to_sstable(seastar::lw_shared_ptr<replica::memtable>,
sstable_write_permit&&)::_ZN7replica5table29try_flush_memtable_to_sstableEN7seastar13lw_shared_ptrINS_8memtableEEEO20sstable_write_permit.Frame*)::<lambda()>::operator()(replica::table::try_flush_memtable_to_sstable(replica::table::try_flush_memtable_to_sstable(seastar::lw_shared_ptr<replica::memtable>,
sstable_write_permit&&)::_ZN7replica5table29try_flush_memtable_to_sstableEN7seastar13lw_shared_ptrINS_8memtableEEEO20sstable_write_permit.Frame*)::<lambda()>
mutable::_ZZN7replica5table29try_flush_memtable_to_sstableEN7seastar13lw_shared_ptrINS_8memtableEEEO20sstable_write_permitENUlvE_clEv.Frame*)::<lambda()>
mutable::_ZZZN7replica5table29try_flush_memtable_to_sstableEN7seastar13lw_shared_ptrINS_8memtableEEEO20sstable_write_permitENUlvE_clEvENUlvE1_clEv.Frame*)::<lambda()>
> (frame_ptr_182(D)->D.2159984_4_7, _54); [return slot optimization]
  _55 = &frame_ptr_182(D)->D.2160366_4_7;
  frame_ptr_182(D)->Aw5_4_7 = seastar::operator co_await<void> (_55); [return
slot optimization]


In the line

  frame_ptr_182(D)->D.2159793_4_7.__old4 = frame_ptr_182(D)->D.2159792_4_7;


Is this not a bitwise copy, which should be instead a call to the copy
constructor?

Reply via email to