[libcxx-commits] [PATCH] D139555: [libc++] Refactor char_traits
    Nikolas Klauser via Phabricator via libcxx-commits 
    libcxx-commits at lists.llvm.org
       
    Thu Dec  8 13:27:01 PST 2022
    
    
  
philnik added inline comments.
================
Comment at: libcxx/include/__string/char_traits.h:215
+    if (__n == 0)
+      return 0;
+    return std::__constexpr_memcmp(__s1, __s2, __n);
----------------
Mordante wrote:
> This is odd, I did leave a message here, but it's gone :-/
> 
> How about removing this test? I tested in godbolt and Clang and GCC for -O0 and -O2 this generated no code.
> (If wanted I can recreate the example in godbolt.)
Maybe? I've tried and for me it generates code: https://godbolt.org/z/54v99TMo9. Though it's arguably not worth the extra four instructions and branch prediction slot to optimize for comparing nothing. I mainly kept it because I thought it was UB to call `memcmp` with null pointers, but I can't find any evidence of that, so removing I'm it.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139555/new/
https://reviews.llvm.org/D139555
    
    
More information about the libcxx-commits
mailing list