aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Willgerodt <felix.willgerodt@intel.com>2024-08-20 09:38:16 +0200
committerFelix Willgerodt <felix.willgerodt@intel.com>2024-08-26 09:06:42 +0200
commit387f97a1b24e968e06dd62f91a26eb0a883fff58 (patch)
treeea5848b00e4877045e232d8e9b5331dd0c4a6e48
parentdb856d41004301b3a56438efd957ef5cabb91530 (diff)
downloadgdb-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.c52
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;
}