@@ -2568,7 +2568,7 @@ static llvm::Expected<uint32_t> GetFpRegisterNumber(UnwindPlan &unwind_plan,
2568
2568
}
2569
2569
2570
2570
struct FrameSetupInfo {
2571
- addr_t frame_setup_func_offset;
2571
+ int64_t frame_setup_func_offset;
2572
2572
int fp_cfa_offset;
2573
2573
};
2574
2574
@@ -2609,7 +2609,7 @@ GetFrameSetupInfo(UnwindPlan &unwind_plan, RegisterContext ®ctx) {
2609
2609
// This is a frameless function, use large positive offset so that a PC can
2610
2610
// still be compared against it.
2611
2611
if (it == fp_locs.end ())
2612
- return FrameSetupInfo{std::numeric_limits<addr_t >::max (), 0 };
2612
+ return FrameSetupInfo{std::numeric_limits<int64_t >::max (), 0 };
2613
2613
2614
2614
// This is an async function with a frame. The prologue roughly follows this
2615
2615
// sequence of instructions:
@@ -2656,7 +2656,7 @@ static llvm::Expected<addr_t> ReadAsyncContextRegisterFromUnwind(
2656
2656
// Is PC before the frame formation? If so, use async register directly.
2657
2657
// This handles frameless functions, as frame_setup_func_offset is INT_MAX.
2658
2658
addr_t pc_offset = pc.GetFileAddress () - func_start_addr.GetFileAddress ();
2659
- if (pc_offset < frame_setup->frame_setup_func_offset )
2659
+ if (( int64_t ) pc_offset < frame_setup->frame_setup_func_offset )
2660
2660
return ReadRegisterAsAddress (regctx, regnums.GetRegisterKind (),
2661
2661
regnums.async_ctx_regnum );
2662
2662
0 commit comments