mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
Fix GDB build with G++ 4.8
G++ 4.8 trips on: In file included from /opt/gcc-4.8/include/c++/4.8.5/algorithm:62:0, from ../../src/gdb/ada-lang.c:65: /opt/gcc-4.8/include/c++/4.8.5/bits/stl_algo.h: In instantiation of ‘_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, const _Tp&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<ada_exc_info*, std::vector<ada_exc_info> >; _Tp = ada_exc_info]’: /opt/gcc-4.8/include/c++/4.8.5/bits/stl_algo.h:2283:70: required from ‘_RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<ada_exc_info*, std::vector<ada_exc_info> >]’ /opt/gcc-4.8/include/c++/4.8.5/bits/stl_algo.h:2315:54: required from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<ada_exc_info*, std::vector<ada_exc_info> >; _Size = long int]’ /opt/gcc-4.8/include/c++/4.8.5/bits/stl_algo.h:5461:36: required from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<ada_exc_info*, std::vector<ada_exc_info> >]’ ../../src/gdb/ada-lang.c:13153:61: required from here /opt/gcc-4.8/include/c++/4.8.5/bits/stl_algo.h:2245:19: error: passing ‘const ada_exc_info’ as ‘this’ argument of ‘bool ada_exc_info::operator<(const ada_exc_info&)’ discards qualifiers [-fpermissive] while (__pivot < *__last) ^ Seems to be a libstdc++ bug meanwhile fixed by: https://gcc.gnu.org/ml/libstdc++/2012-04/msg00074. In any case, there's no reason these methods can't be const. gdb/ChangeLog: 2017-10-02 Tom Tromey <tom@tromey.com> Pedro Alves <palves@redhat.com> * ada-lang.h (ada_exc_info::operator<): Make const. (ada_exc_info::operator==): Make const. * ada-lang.c (ada_exc_info::operator<, ada_exc_info::operator==): Make const.
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
2017-10-02 Tom Tromey <tom@tromey.com>
|
||||||
|
Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
|
* ada-lang.h (ada_exc_info::operator<): Make const.
|
||||||
|
(ada_exc_info::operator==): Make const.
|
||||||
|
* ada-lang.c (ada_exc_info::operator<, ada_exc_info::operator==):
|
||||||
|
Make const.
|
||||||
|
|
||||||
2017-09-29 Tom Tromey <tom@tromey.com>
|
2017-09-29 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* target.c (read_whatever_is_readable): Change type of "result".
|
* target.c (read_whatever_is_readable): Change type of "result".
|
||||||
|
@ -13123,7 +13123,7 @@ ada_is_non_standard_exception_sym (struct symbol *sym)
|
|||||||
by exception address. */
|
by exception address. */
|
||||||
|
|
||||||
bool
|
bool
|
||||||
ada_exc_info::operator< (const ada_exc_info &other)
|
ada_exc_info::operator< (const ada_exc_info &other) const
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
@ -13136,7 +13136,7 @@ ada_exc_info::operator< (const ada_exc_info &other)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
ada_exc_info::operator== (const ada_exc_info &other)
|
ada_exc_info::operator== (const ada_exc_info &other) const
|
||||||
{
|
{
|
||||||
return addr == other.addr && strcmp (name, other.name) == 0;
|
return addr == other.addr && strcmp (name, other.name) == 0;
|
||||||
}
|
}
|
||||||
|
@ -387,8 +387,8 @@ struct ada_exc_info
|
|||||||
/* The address of the symbol corresponding to that exception. */
|
/* The address of the symbol corresponding to that exception. */
|
||||||
CORE_ADDR addr;
|
CORE_ADDR addr;
|
||||||
|
|
||||||
bool operator< (const ada_exc_info &);
|
bool operator< (const ada_exc_info &) const;
|
||||||
bool operator== (const ada_exc_info &);
|
bool operator== (const ada_exc_info &) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern std::vector<ada_exc_info> ada_exceptions_list (const char *regexp);
|
extern std::vector<ada_exc_info> ada_exceptions_list (const char *regexp);
|
||||||
|
Reference in New Issue
Block a user