VG_TRACK( pre_mem_write, Vg_CoreSignal, tst->tid, "signal handler frame",
rsp, offsetof(struct sigframe, vg) );
- frame->retaddr = (Addr)&VG_(amd64_freebsd_SUBST_FOR_sigreturn);
+ frame->retaddr = (Addr)VG_(amd64_freebsd_SUBST_FOR_sigreturn);
if (siguc) {
trapno = siguc->uc_mcontext.trapno;
esp, offsetof(struct sigframe, vg) );
frame->sigNo = sigNo;
- frame->retaddr = (Addr)&VG_(x86_freebsd_SUBST_FOR_sigreturn);
+ frame->retaddr = (Addr)VG_(x86_freebsd_SUBST_FOR_sigreturn);
if ((flags & VKI_SA_SIGINFO) == 0)
frame->psigInfo = (Addr)siginfo->si_code;
else
}
if (vex->guest_LDT != (HWord)NULL) {
- free_LDT_or_GDT( (VexGuestX86SegDescr*)vex->guest_LDT );
+ free_LDT_or_GDT( (VexGuestX86SegDescr*)(HWord)vex->guest_LDT );
vex->guest_LDT = (HWord)NULL;
}
if (vex->guest_GDT != (HWord)NULL) {
- free_LDT_or_GDT( (VexGuestX86SegDescr*)vex->guest_GDT );
+ free_LDT_or_GDT( (VexGuestX86SegDescr*)(HWord)vex->guest_GDT );
vex->guest_GDT = (HWord)NULL;
}
}
vg_assert(8 == sizeof(VexGuestX86SegDescr));
vg_assert(sizeof(HWord) == sizeof(VexGuestX86SegDescr*));
- gdt = (VexGuestX86SegDescr*)VG_(threads)[tid].arch.vex.guest_GDT;
+ gdt = (VexGuestX86SegDescr*)(HWord)VG_(threads)[tid].arch.vex.guest_GDT;
/* If the thread doesn't have a GDT, allocate it now. */
if (!gdt) {
vg_assert(sizeof(HWord) == sizeof(VexGuestX86SegDescr*));
vg_assert(8 == sizeof(VexGuestX86SegDescr));
- gdt = (VexGuestX86SegDescr*)VG_(threads)[tid].arch.vex.guest_GDT;
+ gdt = (VexGuestX86SegDescr*)(HWord)VG_(threads)[tid].arch.vex.guest_GDT;
/* If the thread doesn't have a GDT, allocate it now. */
if (!gdt) {
extern Addr VG_(trampoline_stuff_end);
#if defined(VGP_x86_freebsd)
-extern void VG_(x86_freebsd_SUBST_FOR_sigreturn);
+extern void VG_(x86_freebsd_SUBST_FOR_sigreturn)(void);
#endif
#if defined(VGP_amd64_freebsd)
-extern void VG_(amd64_freebsd_SUBST_FOR_sigreturn);
+extern void VG_(amd64_freebsd_SUBST_FOR_sigreturn)(void);
#endif
#if defined(VGP_arm64_freebsd)