diff options
author | Felix Willgerodt <felix.willgerodt@intel.com> | 2024-08-20 09:38:16 +0200 |
---|---|---|
committer | Felix Willgerodt <felix.willgerodt@intel.com> | 2024-08-26 09:06:42 +0200 |
commit | 387f97a1b24e968e06dd62f91a26eb0a883fff58 (patch) | |
tree | ea5848b00e4877045e232d8e9b5331dd0c4a6e48 | |
parent | db856d41004301b3a56438efd957ef5cabb91530 (diff) | |
download | gdb-387f97a1b24e968e06dd62f91a26eb0a883fff58.zip gdb-387f97a1b24e968e06dd62f91a26eb0a883fff58.tar.gz gdb-387f97a1b24e968e06dd62f91a26eb0a883fff58.tar.bz2 |
gdb, btrace: Fix clang build
Simon pointed out to me that there are some failures when building with clang,
that were caused by my commit
commit d894edfcc40e63be9b6efa0950c1752f249f16e5
Author: Felix Willgerodt <felix.willgerodt@intel.com>
Date: Mon Feb 18 13:49:25 2019 +0100
btrace: Introduce auxiliary instructions.
The errors are:
CXX btrace.o
gdb/btrace.c:1203:11: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
1203 | return {(CORE_ADDR) insn.ip, (gdb_byte) insn.size,
| ^~~~~~~~~~~~~~~~~~~
| { }
gdb/btrace.c:1218:21: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
1218 | btrace_insn insn {btinfo->aux_data.size () - 1, 0,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| { }
gdb/btrace.c:1323:34: error: variable 'bfun' is uninitialized when used here [-Werror,-Wuninitialized]
1323 | handle_pt_aux_insn (btinfo, bfun, *ptw_string, pc);
| ^~~~
gdb/btrace.c:1236:35: note: initialize the variable 'bfun' to silence this warning
1236 | struct btrace_function *bfun;
| ^
| = nullptr
3 errors generated.
make[1]: *** [Makefile:1961: btrace.o] Error 1
This fixes those errors and switches two casts to C++ casts while we
are at it.
Approved-By: Simon Marchi <simon.marchi@efficios.com>
-rw-r--r-- | gdb/btrace.c | 52 |
1 files changed, 30 insertions, 22 deletions
diff --git a/gdb/btrace.c b/gdb/btrace.c index 95ff27c..ff9612d 100644 --- a/gdb/btrace.c +++ b/gdb/btrace.c @@ -1200,7 +1200,8 @@ pt_btrace_insn_flags (const struct pt_insn &insn) static btrace_insn pt_btrace_insn (const struct pt_insn &insn) { - return {(CORE_ADDR) insn.ip, (gdb_byte) insn.size, + return {{static_cast<CORE_ADDR> (insn.ip)}, + static_cast<gdb_byte> (insn.size), pt_reclassify_insn (insn.iclass), pt_btrace_insn_flags (insn)}; } @@ -1209,13 +1210,13 @@ pt_btrace_insn (const struct pt_insn &insn) /* Helper for events that will result in an aux_insn. */ static void -handle_pt_aux_insn (btrace_thread_info *btinfo, btrace_function *bfun, - std::string &aux_str, CORE_ADDR ip) +handle_pt_aux_insn (btrace_thread_info *btinfo, std::string &aux_str, + CORE_ADDR ip) { btinfo->aux_data.emplace_back (std::move (aux_str)); - bfun = ftrace_update_function (btinfo, ip); + struct btrace_function *bfun = ftrace_update_function (btinfo, ip); - btrace_insn insn {btinfo->aux_data.size () - 1, 0, + btrace_insn insn {{btinfo->aux_data.size () - 1}, 0, BTRACE_INSN_AUX, 0}; ftrace_update_insns (bfun, insn); @@ -1233,7 +1234,6 @@ handle_pt_insn_events (struct btrace_thread_info *btinfo, #if defined (HAVE_PT_INSN_EVENT) while (status & pts_event_pending) { - struct btrace_function *bfun; struct pt_event event; uint64_t offset; @@ -1247,30 +1247,38 @@ handle_pt_insn_events (struct btrace_thread_info *btinfo, break; case ptev_enabled: - if (event.status_update != 0) - break; + { + if (event.status_update != 0) + break; - if (event.variant.enabled.resumed == 0 && !btinfo->functions.empty ()) - { - bfun = ftrace_new_gap (btinfo, BDE_PT_DISABLED, gaps); + if (event.variant.enabled.resumed == 0 + && !btinfo->functions.empty ()) + { + struct btrace_function *bfun + = ftrace_new_gap (btinfo, BDE_PT_DISABLED, gaps); - pt_insn_get_offset (decoder, &offset); + pt_insn_get_offset (decoder, &offset); - warning (_("Non-contiguous trace at instruction %u (offset = 0x%" - PRIx64 ")."), bfun->insn_offset - 1, offset); - } + warning + (_("Non-contiguous trace at instruction %u (offset = 0x%" + PRIx64 ")."), bfun->insn_offset - 1, offset); + } - break; + break; + } case ptev_overflow: - bfun = ftrace_new_gap (btinfo, BDE_PT_OVERFLOW, gaps); + { + struct btrace_function *bfun + = ftrace_new_gap (btinfo, BDE_PT_OVERFLOW, gaps); - pt_insn_get_offset (decoder, &offset); + pt_insn_get_offset (decoder, &offset); - warning (_("Overflow at instruction %u (offset = 0x%" PRIx64 ")."), - bfun->insn_offset - 1, offset); + warning (_("Overflow at instruction %u (offset = 0x%" PRIx64 ")."), + bfun->insn_offset - 1, offset); - break; + break; + } #if defined (HAVE_STRUCT_PT_EVENT_VARIANT_PTWRITE) case ptev_ptwrite: { @@ -1320,7 +1328,7 @@ handle_pt_insn_events (struct btrace_thread_info *btinfo, if (!ptw_string.has_value ()) *ptw_string = hex_string (event.variant.ptwrite.payload); - handle_pt_aux_insn (btinfo, bfun, *ptw_string, pc); + handle_pt_aux_insn (btinfo, *ptw_string, pc); break; } |