diff options
-rw-r--r-- | gdb/disasm-selftests.c | 5 | ||||
-rw-r--r-- | gdb/disasm.c | 25 | ||||
-rw-r--r-- | gdb/disasm.h | 22 | ||||
-rw-r--r-- | gdb/guile/scm-disasm.c | 2 | ||||
-rw-r--r-- | gdb/python/py-disasm.c | 12 |
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); |