diff --git a/pkgs/by-name/ac/ac-library/fix-char-signedness-tests.patch b/pkgs/by-name/ac/ac-library/fix-char-signedness-tests.patch new file mode 100644 index 000000000000..7373784dbe43 --- /dev/null +++ b/pkgs/by-name/ac/ac-library/fix-char-signedness-tests.patch @@ -0,0 +1,24 @@ +diff --git i/test/unittest/type_traits_test.cpp w/test/unittest/type_traits_test.cpp +index 164cc79..123b3a2 100644 +--- i/test/unittest/type_traits_test.cpp ++++ w/test/unittest/type_traits_test.cpp +@@ -1,5 +1,6 @@ + #include "atcoder/internal_type_traits" + ++#include + #include + + #include +@@ -44,7 +45,12 @@ static_assert(internal::is_unsigned_int::value, ""); + static_assert(!internal::is_signed_int::value, ""); + static_assert(!internal::is_unsigned_int::value, ""); + ++#if CHAR_MIN < 0 + static_assert(is_same>::value, ""); ++#else ++static_assert(is_same>::value, ""); ++#endif ++ + static_assert( + is_same>::value, + ""); diff --git a/pkgs/by-name/ac/ac-library/package.nix b/pkgs/by-name/ac/ac-library/package.nix index b112b8128a81..bdbb3e5d2355 100644 --- a/pkgs/by-name/ac/ac-library/package.nix +++ b/pkgs/by-name/ac/ac-library/package.nix @@ -18,7 +18,12 @@ stdenv.mkDerivation (finalAttrs: { fetchSubmodules = true; hash = "sha256-1wwzN/JPS6daj1vDFuEN5z20tMdLfMvEKti0sxCVlHA="; }; - + patches = [ + # Fix type_traits_test assumptions about char signedness on platforms + # where char is unsigned by default (e.g. aarch64-linux). + # Reported upstream: https://github.com/atcoder/ac-library/issues/191 + ./fix-char-signedness-tests.patch + ]; outputs = [ "dev" "out" @@ -60,7 +65,6 @@ stdenv.mkDerivation (finalAttrs: { env = { NIX_CFLAGS_COMPILE = toString [ "-Wno-error=array-bounds" - "-Wno-character-conversion" ]; };