aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/disasm-selftests.c5
-rw-r--r--gdb/disasm.c25
-rw-r--r--gdb/disasm.h22
-rw-r--r--gdb/guile/scm-disasm.c2
-rw-r--r--gdb/python/py-disasm.c12
5 files changed, 37 insertions, 29 deletions
diff --git a/gdb/disasm-selftests.c b/gdb/disasm-selftests.c
index db2d1e0..10df1a1 100644
--- a/gdb/disasm-selftests.c
+++ b/gdb/disasm-selftests.c
@@ -234,7 +234,8 @@ print_one_insn_test (struct gdbarch *gdbarch)
size_t m_len;
static int read_memory (bfd_vma memaddr, gdb_byte *myaddr,
- unsigned int len, struct disassemble_info *info)
+ unsigned int len,
+ struct disassemble_info *info) noexcept
{
gdb_disassembler_test *self
= static_cast<gdb_disassembler_test *>(info->application_data);
@@ -296,7 +297,7 @@ memory_error_test (struct gdbarch *gdbarch)
static int read_memory (bfd_vma memaddr, gdb_byte *myaddr,
unsigned int len,
- struct disassemble_info *info)
+ struct disassemble_info *info) noexcept
{
/* Always return an error. */
return -1;
diff --git a/gdb/disasm.c b/gdb/disasm.c
index 60f95c3..e64cf69 100644
--- a/gdb/disasm.c
+++ b/gdb/disasm.c
@@ -191,7 +191,7 @@ line_has_code_p (htab_t table, struct symtab *symtab, int line)
int
gdb_disassembler_memory_reader::dis_asm_read_memory
(bfd_vma memaddr, gdb_byte *myaddr, unsigned int len,
- struct disassemble_info *info)
+ struct disassemble_info *info) noexcept
{
return target_read_code (memaddr, myaddr, len);
}
@@ -199,8 +199,8 @@ gdb_disassembler_memory_reader::dis_asm_read_memory
/* Wrapper of memory_error. */
void
-gdb_disassembler::dis_asm_memory_error (int err, bfd_vma memaddr,
- struct disassemble_info *info)
+gdb_disassembler::dis_asm_memory_error
+ (int err, bfd_vma memaddr, struct disassemble_info *info) noexcept
{
gdb_disassembler *self
= static_cast<gdb_disassembler *>(info->application_data);
@@ -211,8 +211,8 @@ gdb_disassembler::dis_asm_memory_error (int err, bfd_vma memaddr,
/* Wrapper of print_address. */
void
-gdb_disassembler::dis_asm_print_address (bfd_vma addr,
- struct disassemble_info *info)
+gdb_disassembler::dis_asm_print_address
+ (bfd_vma addr, struct disassemble_info *info) noexcept
{
gdb_disassembler *self
= static_cast<gdb_disassembler *>(info->application_data);
@@ -256,7 +256,7 @@ gdb_printing_disassembler::stream_from_gdb_disassemble_info (void *dis_info)
int
gdb_printing_disassembler::fprintf_func (void *dis_info,
- const char *format, ...)
+ const char *format, ...) noexcept
{
ui_file *stream = stream_from_gdb_disassemble_info (dis_info);
@@ -272,9 +272,9 @@ gdb_printing_disassembler::fprintf_func (void *dis_info,
/* See disasm.h. */
int
-gdb_printing_disassembler::fprintf_styled_func (void *dis_info,
- enum disassembler_style style,
- const char *format, ...)
+gdb_printing_disassembler::fprintf_styled_func
+ (void *dis_info, enum disassembler_style style,
+ const char *format, ...) noexcept
{
ui_file *stream = stream_from_gdb_disassemble_info (dis_info);
gdb_printing_disassembler *dis = (gdb_printing_disassembler *) dis_info;
@@ -1220,8 +1220,8 @@ gdb_insn_length (struct gdbarch *gdbarch, CORE_ADDR addr)
/* See disasm.h. */
int
-gdb_non_printing_disassembler::null_fprintf_func (void *stream,
- const char *format, ...)
+gdb_non_printing_disassembler::null_fprintf_func
+ (void *stream, const char *format, ...) noexcept
{
return 0;
}
@@ -1230,7 +1230,8 @@ gdb_non_printing_disassembler::null_fprintf_func (void *stream,
int
gdb_non_printing_disassembler::null_fprintf_styled_func
- (void *stream, enum disassembler_style style, const char *format, ...)
+ (void *stream, enum disassembler_style style,
+ const char *format, ...) noexcept
{
return 0;
}
diff --git a/gdb/disasm.h b/gdb/disasm.h
index b7d1674..58c6c62 100644
--- a/gdb/disasm.h
+++ b/gdb/disasm.h
@@ -51,7 +51,13 @@ struct gdb_disassemble_info
protected:
- /* Types for the function callbacks within m_di. */
+ /* Types for the function callbacks within m_di. It would be nice if
+ these function types were all defined to include the noexcept
+ keyword, as every implementation of these must be noexcept. However,
+ using noexcept within a function typedef like this is a C++17
+ feature, trying to do this for earlier C++ versions results in a
+ warning from GCC/Clang, and the noexcept isn't checked. After we
+ move to C++17 these should be updated to add noexcept. */
using read_memory_ftype = decltype (disassemble_info::read_memory_func);
using memory_error_ftype = decltype (disassemble_info::memory_error_func);
using print_address_ftype = decltype (disassemble_info::print_address_func);
@@ -127,7 +133,7 @@ protected:
/* Callback used as the disassemble_info's fprintf_func callback. The
DIS_INFO pointer is a pointer to a gdb_printing_disassembler object.
Content is written to the m_stream extracted from DIS_INFO. */
- static int fprintf_func (void *dis_info, const char *format, ...)
+ static int fprintf_func (void *dis_info, const char *format, ...) noexcept
ATTRIBUTE_PRINTF(2,3);
/* Callback used as the disassemble_info's fprintf_styled_func callback.
@@ -135,7 +141,7 @@ protected:
object. Content is written to the m_stream extracted from DIS_INFO. */
static int fprintf_styled_func (void *dis_info,
enum disassembler_style style,
- const char *format, ...)
+ const char *format, ...) noexcept
ATTRIBUTE_PRINTF(3,4);
/* Return true if the disassembler is considered inside a comment, false
@@ -187,14 +193,14 @@ private:
/* Callback used as the disassemble_info's fprintf_func callback, this
doesn't write anything to STREAM, but just returns 0. */
- static int null_fprintf_func (void *stream, const char *format, ...)
+ static int null_fprintf_func (void *stream, const char *format, ...) noexcept
ATTRIBUTE_PRINTF(2,3);
/* Callback used as the disassemble_info's fprintf_styled_func callback,
, this doesn't write anything to STREAM, but just returns 0. */
static int null_fprintf_styled_func (void *stream,
enum disassembler_style style,
- const char *format, ...)
+ const char *format, ...) noexcept
ATTRIBUTE_PRINTF(3,4);
};
@@ -208,7 +214,7 @@ struct gdb_disassembler_memory_reader
/* Implements the read_memory_func disassemble_info callback. */
static int dis_asm_read_memory (bfd_vma memaddr, gdb_byte *myaddr,
unsigned int len,
- struct disassemble_info *info);
+ struct disassemble_info *info) noexcept;
};
/* A non-printing disassemble_info management class. The disassemble_info
@@ -281,9 +287,9 @@ private:
static bool use_ext_lang_colorization_p;
static void dis_asm_memory_error (int err, bfd_vma memaddr,
- struct disassemble_info *info);
+ struct disassemble_info *info) noexcept;
static void dis_asm_print_address (bfd_vma addr,
- struct disassemble_info *info);
+ struct disassemble_info *info) noexcept;
/* Return true if we should use the extension language to apply
disassembler styling. This requires disassembler styling to be on
diff --git a/gdb/guile/scm-disasm.c b/gdb/guile/scm-disasm.c
index 992a64b..c095755 100644
--- a/gdb/guile/scm-disasm.c
+++ b/gdb/guile/scm-disasm.c
@@ -106,7 +106,7 @@ gdbscm_disasm_read_memory_worker (void *datap)
static int
gdbscm_disasm_read_memory (bfd_vma memaddr, bfd_byte *myaddr,
unsigned int length,
- struct disassemble_info *dinfo)
+ struct disassemble_info *dinfo) noexcept
{
gdbscm_disassembler *self
= static_cast<gdbscm_disassembler *> (dinfo->application_data);
diff --git a/gdb/python/py-disasm.c b/gdb/python/py-disasm.c
index 1d46099..a25252b 100644
--- a/gdb/python/py-disasm.c
+++ b/gdb/python/py-disasm.c
@@ -101,12 +101,12 @@ struct gdbpy_disassembler : public gdb_printing_disassembler
/* Callbacks used by disassemble_info. */
static void memory_error_func (int status, bfd_vma memaddr,
- struct disassemble_info *info);
+ struct disassemble_info *info) noexcept;
static void print_address_func (bfd_vma addr,
- struct disassemble_info *info);
+ struct disassemble_info *info) noexcept;
static int read_memory_func (bfd_vma memaddr, gdb_byte *buff,
unsigned int len,
- struct disassemble_info *info);
+ struct disassemble_info *info) noexcept;
/* Return a reference to an optional that contains the address at which a
memory error occurred. The optional will only have a value if a
@@ -513,7 +513,7 @@ disasmpy_info_progspace (PyObject *self, void *closure)
int
gdbpy_disassembler::read_memory_func (bfd_vma memaddr, gdb_byte *buff,
unsigned int len,
- struct disassemble_info *info)
+ struct disassemble_info *info) noexcept
{
gdbpy_disassembler *dis
= static_cast<gdbpy_disassembler *> (info->application_data);
@@ -658,7 +658,7 @@ disasmpy_result_init (PyObject *self, PyObject *args, PyObject *kwargs)
void
gdbpy_disassembler::memory_error_func (int status, bfd_vma memaddr,
- struct disassemble_info *info)
+ struct disassemble_info *info) noexcept
{
gdbpy_disassembler *dis
= static_cast<gdbpy_disassembler *> (info->application_data);
@@ -669,7 +669,7 @@ gdbpy_disassembler::memory_error_func (int status, bfd_vma memaddr,
void
gdbpy_disassembler::print_address_func (bfd_vma addr,
- struct disassemble_info *info)
+ struct disassemble_info *info) noexcept
{
gdbpy_disassembler *dis
= static_cast<gdbpy_disassembler *> (info->application_data);