if (!quals.empty())
{
if (is_pointer_type(get_underlying_type())
- || is_reference_type(get_underlying_type()))
+ || is_reference_type(get_underlying_type())
+ || is_array_type(get_underlying_type()))
{
name += " ";
name += quals;
string
array_type_def::subrange_type::vector_as_string(const vector<subrange_sptr>& v)
{
+ if (v.empty())
+ return "[]";
+
string r;
for (vector<subrange_sptr>::const_iterator i = v.begin();
i != v.end();
append_subrange(*i);
}
-/// @return true iff one of the sub-ranges of the array is infinite.
+/// @return true if one of the sub-ranges of the array is infinite, or
+/// if the array has no sub-range at all, also meaning that the size
+/// of the array is infinite.
bool
array_type_def::is_infinite() const
{
+ if (priv_->subranges_.empty())
+ return true;
for (std::vector<shared_ptr<subrange_type> >::const_iterator i =
priv_->subranges_.begin();
1 Changed variable:
- [C]'const const size_t[2][1][17][2] _elf_fmsize' was changed to 'const size_t _elf_fmsize[2][1][17][2]':
+ [C]'const size_t[2][1][17][2] const _elf_fmsize' was changed to 'const size_t _elf_fmsize[2][1][17][2]':
type of variable changed:
- entity changed from 'const const size_t[2][1][17][2]' to 'const size_t[2][1][17][2]'
+ entity changed from 'const size_t[2][1][17][2] const' to 'const size_t[2][1][17][2]'