[all-commits] [llvm/llvm-project] 245d66: [reland][libc] Remove UB specializations of type t...

Guillaume Chatelet via All-commits all-commits at lists.llvm.org
Thu Mar 7 02:41:56 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 245d669f1d1c3f66d0d3d8aa7cffa5ef0d7747ff
      https://github.com/llvm/llvm-project/commit/245d669f1d1c3f66d0d3d8aa7cffa5ef0d7747ff
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M libc/src/__support/CMakeLists.txt
    M libc/src/__support/CPP/bit.h
    M libc/src/__support/UInt.h
    M libc/src/__support/float_to_string.h
    M libc/src/__support/integer_to_string.h
    M libc/test/UnitTest/CMakeLists.txt
    M libc/test/UnitTest/LibcTest.cpp
    M libc/test/UnitTest/LibcTest.h
    M libc/test/UnitTest/TestLogger.cpp
    M libc/test/src/__support/CPP/bit_test.cpp
    M libc/test/src/__support/FPUtil/fpbits_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel

  Log Message:
  -----------
  [reland][libc] Remove UB specializations of type traits for `BigInt` (#84299)

Note: This is a reland of #84035.

The standard specifies that it it UB to specialize the following traits:
 - `std::is_integral`
 - `std::is_unsigned`
 - `std::make_unsigned`
 - `std::make_signed`

This patch:
 - Removes specializations for `BigInt`
 - Transforms SFINAE for `bit.h` functions from template parameter to
   return type (This makes specialization easier).
 - Adds `BigInt` specialization for `bit.h` functions.
 - Fixes code depending on previous specializations.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list