[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[creduce-bugs] crash
$ ~/creduce-install/libexec/clang_delta
--transformation=empty-struct-to-int --counter=1 small.cpp
Segmentation fault: 11
template< typename _Tp> struct iterator ;
template<class _T1, class _T2> struct pair {
;
};
class new_allocator {
public:
typedef int value_type;
template<typename _Tp1> struct rebind {
typedef new_allocator other;
};
};
template<typename _Tp> class allocator: public new_allocator {};
template< typename _Arg2> struct binary_function ;
template<typename _Tp> struct equal_to : public binary_function< _Tp> {};
template<typename T> struct atomic_impl ;
template<typename T> struct atomic: atomic_impl<T> {};
class tbb_allocator ;
template<class Solist, typename Value> class flist_iterator : public iterator< Value> {};
template< typename Value> class solist_iterator : public flist_iterator<int, Value> {};
template < typename Allocator> class split_ordered_list {
public:
typedef typename Allocator::template rebind<int>::other allocator_type;
typedef solist_iterator< typename allocator_type::value_type> iterator;
};
template <typename Traits> class concurrent_unordered_base : public Traits {
typedef typename Traits::value_type value_type;
typedef split_ordered_list< typename Traits::allocator_type> solist_t;
typedef typename solist_t::iterator iterator;
using Traits::my_hash_compare;
using Traits::get_key;
public:
const value_type & insert_value;
void insert(void) {
{
const int &__trans_tmp_1 = get_key(internal_insert_value);
for (;
;
) ;
}
;
}
private: const value_type & internal_insert_value;
};
class tbb_hash ;
template< typename Allocator> class concurrent_unordered_map_traits {
protected: typedef pair<const int, int> value_type;
typedef typename Allocator::template rebind<value_type>::other allocator_type;
enum {
allow_multimapping };
template<class Type1, class Type2> static const int& get_key(const pair<Type1, Type2>& value) ;
int my_hash_compare;
};
template < typename Allocator = tbb_allocator > class Trans_NS_interface5_concurrent_unordered_multimap : public concurrent_unordered_base< concurrent_unordered_map_traits< Allocator> > {};
class NoAssign {};
template <typename base_alloc_t > class local_counting_allocator : public base_alloc_t {};
template < template<typename X> class Allocator = allocator> class debug_allocator : public Allocator<int> {};
typedef local_counting_allocator<debug_allocator<allocator> > MyAllocator;
typedef Trans_NS_interface5_concurrent_unordered_multimap< MyAllocator> MyMultiMap;
template<typename T> class AssignBody: NoAssign {};
template<> class AssignBody<int>: NoAssign {
MyMultiMap &table;
void operator()(int i) const {
for(int j = 0;
0 < + 1;
++j)
table.insert();
}
};