[Bug debug/22514] New: [4.1 Regression] ICE in force_decl_die with invalid code after error
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sat Jul 16 19:47:00 GMT 2005
Take this invalid C++ code, we ICE in force_decl_die when we supply -gdwarf-2:
namespace std {
template<typename _Alloc> class allocator;
}
namespace boost {
struct heap_clone_allocator {
};
namespace ptr_container_detail {
template < class Config, class CloneAllocator > struct reversible_ptr_container {
static const bool allow_null = Config::allow_null;
template< bool allow_null_values > struct null_clone_allocator {};
}
};
}
namespace ptr_container_detail {
template < class T, class VoidPtrSeq > struct sequence_config {
typedef typename VoidPtrSeq::allocator_type allocator_type;
};
}
template < class T, class VoidPtrSeq, class CloneAllocator = heap_clone_allocator > struct
ptr_sequence_adapter :
ptr_container_detail::reversible_ptr_container< ptr_container_detail::sequence_config<T,VoidPtrSeq>,
CloneAllocator >
{
};
}
namespace std {
template<typename _Tp, typename _Alloc> struct _List_base {
struct _List_impl : _Node_Alloc_type {
};
_List_impl _M_impl;
};
template<typename _Tp, typename _Alloc = std::allocator<_Tp> > struct list : _List_base<_Tp,
_Alloc> {
typedef _List_base<_Tp, _Alloc> _Base;
using _Base::_M_impl;
};
}
namespace boost {
template < class T, class CloneAllocator = heap_clone_allocator, class Allocator = std::
allocator<void*> >
class ptr_list
:
public ptr_sequence_adapter< T, std::list<void*,Allocator>, CloneAllocator >
{
};
struct B {
typedef boost::ptr_list<B> C;
C c;
--
Summary: [4.1 Regression] ICE in force_decl_die with invalid code
after error
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Keywords: ice-on-invalid-code, error-recovery
Severity: normal
Priority: P2
Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22514
More information about the Gcc-bugs
mailing list