[Bug libstdc++/62119] New: dangling reference : gslice_array's copy constructor
faithandbrave at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Aug 13 07:47:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62119
Bug ID: 62119
Summary: dangling reference : gslice_array's copy constructor
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: faithandbrave at gmail dot com
follow code happens segmentation fault by dangling deference.
#include <iostream>
#include <valarray>
#include <numeric>
int main()
{
std::valarray<int> v(15);
std::iota(std::begin(v), std::end(v), 0);
const std::size_t start = 1u;
const std::valarray<std::size_t> lengths = {3u, 2u};
const std::valarray<std::size_t> strides = {5u, 1u};
// here
std::gslice_array<int> result = v[std::gslice(start, lengths, strides)];
result = 99;
for (int x : v) {
std::cout << x << std::endl;
}
}
gslice_array.h
private:
const valarray<size_t>& _M_index;
template<typename _Tp>
inline
gslice_array<_Tp>::gslice_array(const gslice_array<_Tp>& __a)
: _M_array(__a._M_array), _M_index(__a._M_index) {}
More information about the Gcc-bugs
mailing list