[LLVMbugs] [Bug 6365] Assertion failed: (Access != AS_none && "Access specifier is AS_none inside a record decl")
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Sun Feb 21 11:34:24 PST 2010
http://www.llvm.org/bugs/show_bug.cgi?id=6365
--- Comment #7 from Albert Zeyer <ich at az2000.de> 2010-02-21 13:34:24 CST ---
I dived a bit more into the code:
CXXRecord is used for struct/class/enum/union all together?
So the FIXME in DeclPrinter::VisitCXXRecordDecl
// FIXME: Doesn't print access specifiers, e.g., "public:"
is invalid then, isn't it? (Or at least for the case when it is a class.)
But I guess it is not related at all to the problem.
---
Btw., in my stl_tree.h, it looks like this:
...
void
destroy_node(_Link_type __p)
{
get_allocator().destroy(&__p->_M_value_field);
_M_put_node(__p);
}
protected:
template<typename _Key_compare,
bool _Is_pod_comparator = std::__is_pod<_Key_compare>::__value>
struct _Rb_tree_impl : public _Node_allocator
{
_Key_compare _M_key_compare;
_Rb_tree_node_base _M_header;
size_type _M_node_count; // Keeps track of size of tree.
_Rb_tree_impl(const _Node_allocator& __a = _Node_allocator(),
const _Key_compare& __comp = _Key_compare())
: _Node_allocator(__a), _M_key_compare(__comp), _M_node_count(0)
{
this->_M_header._M_color = _S_red;
this->_M_header._M_parent = 0;
this->_M_header._M_left = &this->_M_header;
this->_M_header._M_right = &this->_M_header;
}
};
// Specialization for _Comparison types that are not capable of
// being base classes / super classes.
template<typename _Key_compare>
struct _Rb_tree_impl<_Key_compare, true> : public _Node_allocator
{
_Key_compare _M_key_compare;
_Rb_tree_node_base _M_header;
size_type _M_node_count; // Keeps track of size of tree.
_Rb_tree_impl(const _Node_allocator& __a = _Node_allocator(),
const _Key_compare& __comp = _Key_compare())
: _Node_allocator(__a), _M_key_compare(__comp), _M_node_count(0)
{
this->_M_header._M_color = _S_red;
this->_M_header._M_parent = 0;
this->_M_header._M_left = &this->_M_header;
this->_M_header._M_right = &this->_M_header;
}
};
...
I.e., the second _Rb_tree_impl is a specialisation of the first general
declaration. In the output (printed by -ast-print), this is wrong.
Should I make an addition bug report about this? Or is this problem related to
the failing assert?
--
Configure bugmail: http://www.llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the llvm-bugs
mailing list