Open
Description
Describe the issue
absl::bit_width(0UL)
should return an int
. With gcc <= 12 and C++20, it's unsigned long
since absl::bit_width
is an alias for std::bit_width
.
abseil-cpp/absl/numeric/bits.h
Line 148 in 41a1f43
libcstdc++ fixed this in gcc-mirror/gcc@4581328#diff-b38391c368270ae056dc788c5adfd749d9fd6fffc9a7c2287da44ce88b6139fd
Steps to reproduce the problem
https://godbolt.org/z/jebjo6GKb
static_assert(std::is_same_v<decltype(std::bit_width(0UL)), int>);
What version of Abseil are you using?
LTS 20250512.0
What operating system and version are you using?
debian testing
What compiler and version are you using?
Using built-in specs.
COLLECT_GCC=/opt/compiler-explorer/gcc-12.4.0/bin/g++
Target: x86_64-linux-gnu
Configured with: ../gcc-12.4.0/configure --prefix=/opt/compiler-explorer/gcc-build/staging --enable-libstdcxx-backtrace=yes --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --disable-bootstrap --enable-multiarch --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --enable-clocale=gnu --enable-languages=c,c++,fortran,ada,objc,obj-c++,go,d --enable-ld=yes --enable-gold=yes --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-linker-build-id --enable-lto --enable-plugins --enable-threads=posix --with-pkgversion=Compiler-Explorer-Build-gcc--binutils-2.42
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.4.0 (Compiler-Explorer-Build-gcc--binutils-2.42)
COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-g' '-o' '/app/output.s' '-masm=intel' '-fno-verbose-asm' '-S' '-std=c++20' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/app/'
/opt/compiler-explorer/gcc-12.4.0/bin/../libexec/gcc/x86_64-linux-gnu/12.4.0/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -iprefix /opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/x86_64-linux-gnu/12.4.0/ -D_GNU_SOURCE <source> -quiet -dumpdir /app/ -dumpbase output.cpp -dumpbase-ext .cpp -masm=intel -mtune=generic -march=x86-64 -g -std=c++20 -version -fdiagnostics-color=always -fno-verbose-asm -o /app/output.s
GNU C++20 (Compiler-Explorer-Build-gcc--binutils-2.42) version 12.4.0 (x86_64-linux-gnu)
compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/x86_64-linux-gnu/12.4.0/../../../../x86_64-linux-gnu/include"
ignoring duplicate directory "/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/../../lib/gcc/x86_64-linux-gnu/12.4.0/../../../../include/c++/12.4.0"
ignoring duplicate directory "/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/../../lib/gcc/x86_64-linux-gnu/12.4.0/../../../../include/c++/12.4.0/x86_64-linux-gnu"
ignoring duplicate directory "/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/../../lib/gcc/x86_64-linux-gnu/12.4.0/../../../../include/c++/12.4.0/backward"
ignoring duplicate directory "/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/../../lib/gcc/x86_64-linux-gnu/12.4.0/include"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring duplicate directory "/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/../../lib/gcc/x86_64-linux-gnu/12.4.0/include-fixed"
ignoring nonexistent directory "/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/../../lib/gcc/x86_64-linux-gnu/12.4.0/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/x86_64-linux-gnu/12.4.0/../../../../include/c++/12.4.0
/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/x86_64-linux-gnu/12.4.0/../../../../include/c++/12.4.0/x86_64-linux-gnu
/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/x86_64-linux-gnu/12.4.0/../../../../include/c++/12.4.0/backward
/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/x86_64-linux-gnu/12.4.0/include
/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/x86_64-linux-gnu/12.4.0/include-fixed
/usr/local/include
/opt/compiler-explorer/gcc-12.4.0/bin/../lib/gcc/../../include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
GNU C++20 (Compiler-Explorer-Build-gcc--binutils-2.42) version 12.4.0 (x86_64-linux-gnu)
compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: c7335fbf28754d6313ca2e82b97549fe
<source>:4:20: error: static assertion failed
4 | static_assert(std::is_same_v<decltype(std::bit_width(0UL)), int>);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Compiler returned: 1
What build system are you using?
n/a
Additional context
No response
Metadata
Metadata
Assignees
Labels
No labels