1. Mar 01, 2018
    • Reini Urban's avatar
      tune p_memcpy_s WIP · bfb89699
      Reini Urban authored
      skip CONSTP(dmax) CONSTP(slen) as they prohibit constant folding
      of this expr.
      TODO: always_inline helps in arg propagation (-O3),
      but needs to be probed for.
      bfb89699
    • Reini Urban's avatar
      compile-time _chk: re-split · 048835cd
      Reini Urban authored
      no _real, static inline _unchecked worker, and
      2 exported funcs: _s (already checked) and _s_chk (some unchecked,
      deferred to run-time checks)
      
      See #48
      048835cd
    • Reini Urban's avatar
      compile-time _chk: specialize str{cat,cpy}_s, memcpy_s · a3efa0b2
      Reini Urban authored
      skip run-time checks when already checked at compile-time.
      split functions into two: unchecked and checked, depending
      on the already done compile-time check.
      
      currently only useful for clang-5+
      gcc cannot not handle BOS as compile-time constant, how lame.
      
      shaves off 10% p_memcpy_s, when all 4 args are of known size + constant len.
      See #48
      a3efa0b2
    • Reini Urban's avatar
      use CHOOSE_EXPR chain · cbbaefb3
      Reini Urban authored
      Probe for static_assert in CXX11 or C11
      
      If args are compile-time constants and satisfy a constant expr,
      call the func, otherwise produce a compile-time error.
      But static_assert cannot be used inside args, only as statement.
      
      See #48
      cbbaefb3
  2. Feb 28, 2018
  3. Feb 27, 2018
  4. Feb 26, 2018
  5. Feb 25, 2018