]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
FreeBSD: enable PERF_FAST_LOADV for x86 and cleanup for clangd
authorPaul Floyd <pjfloyd@wanadoo.fr>
Sun, 25 Dec 2022 08:25:01 +0000 (09:25 +0100)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Sun, 25 Dec 2022 08:25:01 +0000 (09:25 +0100)
clangd doesn't like asm, prefers __asm__
some hicpp-braces-around-statements fixes

coregrind/m_sigframe/sigframe-amd64-freebsd.c
coregrind/m_syswrap/syswrap-amd64-freebsd.c
coregrind/m_syswrap/syswrap-freebsd.c
coregrind/m_syswrap/syswrap-x86-freebsd.c
coregrind/vgdb-invoker-freebsd.c
memcheck/mc_main.c
memcheck/mc_main_asm.c

index 997cf77c7e7b97d30b831ecd2ed14982a11ad4c2..31e6e784ae1824e71509f834a282c01f4b8f3de3 100644 (file)
@@ -175,9 +175,10 @@ static Bool extend ( ThreadState *tst, Addr addr, SizeT size )
 
    if (VG_(extend_stack)(tid, addr)) {
       stackseg = VG_(am_find_nsegment)(addr);
-      if (0 && stackseg)
+      if (0 && stackseg) {
          VG_(printf)("frame=%#lx seg=%#lx-%#lx\n",
                      addr, stackseg->start, stackseg->end);
+      }
    }
 
    if (stackseg == NULL || !stackseg->hasR || !stackseg->hasW) {
@@ -185,10 +186,11 @@ static Bool extend ( ThreadState *tst, Addr addr, SizeT size )
          Vg_UserMsg,
          "Can't extend stack to %#lx during signal delivery for thread %u:\n",
          addr, tid);
-      if (stackseg == NULL)
+      if (stackseg == NULL) {
          VG_(message)(Vg_UserMsg, "  no stack segment\n");
-      else
+      } else {
          VG_(message)(Vg_UserMsg, "  too small or bad protection modes\n");
+      }
 
       /* set SIGSEGV to default handler */
       VG_(set_default_handler)(VKI_SIGSEGV);
@@ -246,8 +248,9 @@ static Addr build_sigframe(ThreadState *tst,
    rsp = VG_ROUNDDN(rsp, 16) - 8;
    frame = (struct sigframe *)rsp;
 
-   if (!extend(tst, rsp, sizeof(*frame)))
+   if (!extend(tst, rsp, sizeof(*frame))) {
       return rsp_top_of_frame;
+   }
 
    /* retaddr, siginfo, uContext fields are to be written */
    VG_TRACK( pre_mem_write, Vg_CoreSignal, tst->tid, "signal handler frame",
@@ -392,8 +395,9 @@ static
 SizeT restore_sigframe ( ThreadState *tst,
                          struct sigframe *frame, Int *sigNo )
 {
-   if (restore_vg_sigframe(tst, &frame->vg, sigNo))
+   if (restore_vg_sigframe(tst, &frame->vg, sigNo)) {
       restore_sigcontext(tst, &frame->uContext.uc_mcontext, &frame->fpstate);
+   }
 
    return sizeof(*frame);
 }
index 3b2f9397d1508c3ad5754918b15f1a9b6b7a72d9..aa58140e2c62bad37f6a7417701948b61714e38b 100644 (file)
@@ -72,7 +72,7 @@ void ML_(call_on_new_stack_0_1) ( Addr stack,
 // %rsi == retaddr
 // %rdx == f
 // %rcx == arg1
-asm(
+__asm__(
    ".text\n"
    ".globl vgModuleLocal_call_on_new_stack_0_1\n"
    "vgModuleLocal_call_on_new_stack_0_1:\n"
@@ -178,8 +178,6 @@ POST(sys_sysarch)
    case VKI_AMD64_SET_FSBASE:
       break;
    case VKI_AMD64_GET_FSBASE:
-      POST_MEM_WRITE( ARG2, sizeof(void *) );
-      break;
    case VKI_AMD64_GET_XFPUSTATE:
       POST_MEM_WRITE( ARG2, sizeof(void *) );
       break;
@@ -331,8 +329,9 @@ PRE(sys_preadv)
    if (!ML_(fd_allowed)(ARG1, "preadv", tid, False)) {
       SET_STATUS_Failure( VKI_EBADF );
    } else {
-      if ((Int)ARG3 > 0)
+      if ((Int)ARG3 > 0) {
          PRE_MEM_READ( "preadv(iov)", ARG2, ARG3 * sizeof(struct vki_iovec) );
+      }
 
       if (ML_(safe_to_deref)((struct vki_iovec *)ARG2, ARG3 * sizeof(struct vki_iovec))) {
          vec = (struct vki_iovec *)(Addr)ARG2;
@@ -355,10 +354,14 @@ POST(sys_preadv)
       /* RES holds the number of bytes read. */
       for (i = 0; i < (Int)ARG3; i++) {
          Int nReadThisBuf = vec[i].iov_len;
-         if (nReadThisBuf > remains) nReadThisBuf = remains;
+         if (nReadThisBuf > remains) {
+            nReadThisBuf = remains;
+         }
          POST_MEM_WRITE( (Addr)vec[i].iov_base, nReadThisBuf );
          remains -= nReadThisBuf;
-         if (remains < 0) VG_(core_panic)("preadv: remains < 0");
+         if (remains < 0) {
+            VG_(core_panic)("preadv: remains < 0");
+         }
       }
    }
 }
@@ -381,8 +384,9 @@ PRE(sys_pwritev)
    if (!ML_(fd_allowed)(ARG1, "pwritev", tid, False)) {
       SET_STATUS_Failure( VKI_EBADF );
    } else {
-      if ((Int)ARG3 >= 0)
+      if ((Int)ARG3 >= 0) {
          PRE_MEM_READ( "pwritev(vector)", ARG2, ARG3 * sizeof(struct vki_iovec) );
+      }
       if (ML_(safe_to_deref)((struct vki_iovec *)ARG2, ARG3 * sizeof(struct vki_iovec))) {
          vec = (struct vki_iovec *)(Addr)ARG2;
          for (i = 0; i < (Int)ARG3; i++) {
@@ -406,11 +410,13 @@ PRE(sys_sendfile)
                  int, fd, int, s, vki_off_t, offset, size_t, nbytes,
                  void *, hdtr, vki_off_t *, sbytes, int, flags);
 
-   if (ARG5 != 0)
+   if (ARG5 != 0) {
       PRE_MEM_READ("sendfile(hdtr)", ARG5, sizeof(struct vki_sf_hdtr));
+   }
 
-   if (ARG6 != 0)
+   if (ARG6 != 0) {
       PRE_MEM_WRITE( "sendfile(sbytes)", ARG6, sizeof(vki_off_t) );
+   }
 }
 
 POST(sys_sendfile)
@@ -567,7 +573,8 @@ PRE(sys_setcontext)
 // int swapcontext(ucontext_t *oucp, const ucontext_t *ucp);
 PRE(sys_swapcontext)
 {
-   struct vki_ucontext *ucp, *oucp;
+   struct vki_ucontext *ucp;
+   struct vki_ucontext *oucp;
    ThreadState* tst;
 
    PRINT("sys_swapcontext ( %#" FMT_REGWORD "x, %#" FMT_REGWORD "x )", ARG1, ARG2);
@@ -623,7 +630,8 @@ PRE(sys_thr_new)
    ThreadState* ptst = VG_(get_ThreadState)(tid);
    ThreadState* ctst = VG_(get_ThreadState)(ctid);
    SysRes       res;
-   vki_sigset_t blockall, savedmask;
+   vki_sigset_t blockall;
+   vki_sigset_t savedmask;
    struct vki_thr_param tp;
    Addr stk;
 
@@ -689,8 +697,9 @@ PRE(sys_thr_new)
       label below, to clean up. */
    VG_TRACK ( pre_thread_ll_create, tid, ctid );
 
-   if (debug)
+   if (debug) {
       VG_(printf)("clone child has SETTLS: tls at %#lx\n", (Addr)tp.tls_base);
+   }
    ctst->arch.vex.guest_FS_CONST = (UWord)tp.tls_base;
    tp.tls_base = 0;  /* Don't have the kernel do it too */
 
index dc430500705aee8f445f87ddcb1db4033834b572..53d09f89f0427b0deef2a5b4c590c42ad41e6fd6 100644 (file)
@@ -235,7 +235,7 @@ static void run_a_thread_NORETURN ( Word tidW )
          between marking it Empty and exiting.  Hence the
          assembler. */
 #if defined(VGP_x86_freebsd)    /* FreeBSD has args on the stack */
-      asm volatile (
+      __asm__ volatile (
          "movl    %1, %0\n"    /* set tst->status = VgTs_Empty */
          "movl    %2, %%eax\n"    /* set %eax = __NR_thr_exit */
          "movl    %3, %%ebx\n"    /* set %ebx = tst->os_state.exitcode */
@@ -249,7 +249,7 @@ static void run_a_thread_NORETURN ( Word tidW )
          : "eax", "ebx"
       );
 #elif defined(VGP_amd64_freebsd)
-      asm volatile (
+      __asm__ volatile (
          "movl   %1, %0\n"    /* set tst->status = VgTs_Empty */
          "movq   %2, %%rax\n"    /* set %rax = __NR_thr_exit */
          "movq   %3, %%rdi\n"    /* set %rdi = tst->os_state.exitcode */
@@ -294,11 +294,13 @@ Addr ML_(allocstack)(ThreadId tid)
       case a stack hasn't been allocated) or they are both non-zero,
       in which case it has. */
 
-   if (tst->os_state.valgrind_stack_base == 0)
+   if (tst->os_state.valgrind_stack_base == 0) {
       vg_assert(tst->os_state.valgrind_stack_init_SP == 0);
+   }
 
-   if (tst->os_state.valgrind_stack_base != 0)
+   if (tst->os_state.valgrind_stack_base != 0) {
       vg_assert(tst->os_state.valgrind_stack_init_SP != 0);
+   }
 
    /* If no stack is present, allocate one. */
 
@@ -5994,8 +5996,9 @@ POST(sys_ppoll)
    if (SUCCESS && ((Word)RES != -1)) {
       UInt i;
       struct vki_pollfd* ufds = (struct vki_pollfd *)(Addr)ARG1;
-      for (i = 0; i < ARG2; i++)
+      for (i = 0; i < ARG2; i++) {
          POST_MEM_WRITE( (Addr)(&ufds[i].revents), sizeof(ufds[i].revents) );
+      }
    }
    ML_(free_safe_mask) ( (Addr)ARG4 );
 }
@@ -6184,23 +6187,28 @@ PRE(sys_kevent)
                  int, kq, struct vki_kevent *, changelist, int, nchanges,
                  struct vki_kevent *, eventlist, int, nevents,
                  struct timespec *, timeout);
-   if (ARG2 != 0 && ARG3 != 0)
+   if (ARG2 != 0 && ARG3 != 0) {
       PRE_MEM_READ( "kevent(changelist)", ARG2, sizeof(struct vki_kevent)*ARG3 );
-   if (ARG4 != 0 && ARG5 != 0)
+   }
+   if (ARG4 != 0 && ARG5 != 0) {
       PRE_MEM_WRITE( "kevent(eventlist)", ARG4, sizeof(struct vki_kevent)*ARG5);
-   if (ARG5 != 0)
+   }
+   if (ARG5 != 0) {
       *flags |= SfMayBlock;
-   if (ARG6 != 0)
+   }
+   if (ARG6 != 0) {
       PRE_MEM_READ( "kevent(timeout)",
                     ARG6, sizeof(struct vki_timespec));
+   }
 }
 
 POST(sys_kevent)
 {
    vg_assert(SUCCESS);
    if ((Word)RES != -1) {
-      if (ARG4 != 0)
+      if (ARG4 != 0) {
          POST_MEM_WRITE( ARG4, sizeof(struct vki_kevent)*RES) ;
+      }
    }
 }
 
@@ -7233,10 +7241,10 @@ const SyscallTableEntry* ML_(get_freebsd_syscall_entry) ( UInt sysno )
    /* Is it in the contiguous initial section of the table? */
    if (sysno < syscall_table_size) {
       const SyscallTableEntry* sys = &ML_(syscall_table)[sysno];
-      if (sys->before == NULL)
+      if (sys->before == NULL) {
          return NULL; /* no entry */
-      else
-         return sys;
+      }
+      return sys;
    }
 
    /* Can't find a wrapper */
index 0e9227014428f5e6aa955d706c2f808dc860c4eb..cd7db23646c393806e22a1bd09d510dfd902dab7 100644 (file)
@@ -79,7 +79,7 @@ void ML_(call_on_new_stack_0_1) ( Addr stack,
 //  8(%esp) == retaddr
 // 12(%esp) == f
 // 16(%esp) == arg1
-asm(
+__asm__(
    ".text\n"
    ".globl vgModuleLocal_call_on_new_stack_0_1\n"
    "vgModuleLocal_call_on_new_stack_0_1:\n"
index d9f3584f80ddd148230cf5d9e7ff8cb9cae4fc3a..6de80c9071c8ed62a161ff61946eaa691b1231cc 100644 (file)
@@ -110,8 +110,9 @@ int ptrace_write_memory (pid_t inferior_pid, CORE_ADDR memaddr,
 
    if (debuglevel >= 1) {
       DEBUG (1, "Writing ");
-      for (i = 0; i < len; i++)
+      for (i = 0; i < len; i++) {
          PDEBUG (1, "%02x", ((const unsigned char*)myaddr)[i]);
+      }
       PDEBUG(1, " to %p\n", (void *) memaddr);
    }
 
@@ -139,8 +140,9 @@ int ptrace_write_memory (pid_t inferior_pid, CORE_ADDR memaddr,
       errno = 0;
       ptrace (PT_WRITE_I, inferior_pid,
               (PTRACE_ARG3_TYPE) addr, buffer[i]);
-      if (errno)
+      if (errno) {
          return errno;
+      }
    }
 
    return 0;
@@ -160,15 +162,18 @@ char *status_image (int status)
 
    if (WIFSIGNALED(status)) {
       APPEND ("WIFSIGNALED %d ", WTERMSIG(status));
-      if (WCOREDUMP(status)) APPEND ("WCOREDUMP ");
+      if (WCOREDUMP(status)) {
+         APPEND ("WCOREDUMP ");
+      }
    }
 
    if (WIFSTOPPED(status))
       APPEND ("WIFSTOPPED %d ", WSTOPSIG(status));
 
 #ifdef WIFCONTINUED
-   if (WIFCONTINUED(status))
+   if (WIFCONTINUED(status)) {
       APPEND ("WIFCONTINUED ");
+   }
 #endif
 
    return result;
@@ -212,8 +217,9 @@ Bool waitstopped (pid_t pid, int signal_expected, const char *msg)
 
       assert (WIFSTOPPED(status));
       signal_received = WSTOPSIG(status);
-      if (signal_received == signal_expected)
+      if (signal_received == signal_expected) {
          break;
+      }
 
       /* pid received a signal which is not the signal we are waiting for.
          If we have not (yet) changed the registers of the inferior
index 141cfe19e1332f3ce2bc855aa1bd428893dfc8b3..94af5b28a22757a23c7295f02f87784166ed41bc 100644 (file)
@@ -369,7 +369,7 @@ static void update_SM_counts(SecMap* oldSM, SecMap* newSM)
 */
 #if ENABLE_ASSEMBLY_HELPERS && defined(PERF_FAST_LOADV) \
     && (defined(VGP_arm_linux) \
-        || defined(VGP_x86_linux) || defined(VGP_x86_solaris))
+        || defined(VGP_x86_linux) || defined(VGP_x86_solaris) || defined(VGP_x86_freebsd))
 /* mc_main_asm.c needs visibility on a few things declared in this file.
    MC_MAIN_STATIC allows to define them static if ok, i.e. on
    platforms that are not using hand-coded asm statements. */
@@ -5028,7 +5028,7 @@ VG_REGPARM(1) ULong MC_(helperc_LOADV64be) ( Addr a )
 /* See mc_main_asm.c */
 
 #elif ENABLE_ASSEMBLY_HELPERS && defined(PERF_FAST_LOADV) \
-      && (defined(VGP_x86_linux) || defined(VGP_x86_solaris))
+      && (defined(VGP_x86_linux) || defined(VGP_x86_solaris) || defined(VGP_x86_freebsd))
 /* See mc_main_asm.c */
 
 #else
index 06033d78c2b70e28fc3c45dd25dc8c476bcb3715..c221b800fbc1ec474aa2e607f388c107486a4c16 100644 (file)
@@ -83,7 +83,7 @@ __asm__( /* Derived from the 32 bit assembly helper */
 );
 
 #elif ENABLE_ASSEMBLY_HELPERS && defined(PERF_FAST_LOADV) \
-      && (defined(VGP_x86_linux) || defined(VGP_x86_solaris))
+      && (defined(VGP_x86_linux) || defined(VGP_x86_solaris) || defined(VGP_x86_freebsd))
 __asm__(
 ".text\n"
 ".align 16\n"