[libc-commits] [libc] [libc] change the return value type of mktime_internal to time_t (PR #132231)

Paul Kirth via libc-commits libc-commits at lists.llvm.org
Tue Mar 25 08:48:12 PDT 2025


ilovepi wrote:

We're seeing this patch fail to build w/ ToT clang. Looks like its missing a static_cast, so https://github.com/llvm/llvm-project/pull/132947 should fix it.

Posting details so others don't duplicate work.

Bot: https://luci-milo.appspot.com/ui/p/fuchsia/builders/toolchain.ci/clang-linux-x64/b8719417152795423041/overview


Error:
```
FAILED: libc/src/time/CMakeFiles/libc.src.time.time_utils.dir/time_utils.cpp.obj 
/b/s/w/ir/x/w/llvm_build/./bin/clang++ --target=armv6m-none-eabi -DLIBC_NAMESPACE=__llvm_libc_21_0_0_git -I/b/s/w/ir/x/w/llvm-llvm-project/libc -isystem /b/s/w/ir/x/w/llvm_build/include/armv6m-unknown-none-eabi --target=armv6m-none-eabi -Wno-atomic-alignment "-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)" "-Dfprintf(stream, format, ...)=printf(format)" -D_LIBCPP_PRINT=1 -mthumb -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -ffunction-sections -fdata-sections -ffile-prefix-map=/b/s/w/ir/x/w/llvm_build/runtimes/runtimes-armv6m-none-eabi-bins=../../../llvm-llvm-project -ffile-prefix-map=/b/s/w/ir/x/w/llvm-llvm-project/= -no-canonical-prefixes -Os -DNDEBUG -std=gnu++17 -UNDEBUG --target=armv6m-none-eabi -DLIBC_QSORT_IMPL=LIBC_QSORT_HEAP_SORT -DLIBC_TYPES_TIME_T_IS_32_BIT -DLIBC_ADD_NULL_CHECKS "-DLIBC_MATH=(LIBC_MATH_SKIP_ACCURATE_PASS | LIBC_MATH_SMALL_TABLES)" -fpie -ffreestanding -DLIBC_FULL_BUILD -nostdlibinc -ffixed-point -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -MD -MT libc/src/time/CMakeFiles/libc.src.time.time_utils.dir/time_utils.cpp.obj -MF libc/src/time/CMakeFiles/libc.src.time.time_utils.dir/time_utils.cpp.obj.d -o libc/src/time/CMakeFiles/libc.src.time.time_utils.dir/time_utils.cpp.obj -c /b/s/w/ir/x/w/llvm-llvm-project/libc/src/time/time_utils.cpp
/b/s/w/ir/x/w/llvm-llvm-project/libc/src/time/time_utils.cpp:107:71: error: implicit conversion loses integer precision: 'int64_t' (aka 'long long') to 'time_t' (aka 'int') [-Werror,-Wshorten-64-to-32]
  105 |   time_t seconds = tm_out->tm_sec +
      |          ~~~~~~~   ~~~~~~~~~~~~~~~~
  106 |                    tm_out->tm_min * time_constants::SECONDS_PER_MIN +
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  107 |                    tm_out->tm_hour * time_constants::SECONDS_PER_HOUR +
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  108 |                    total_days * time_constants::SECONDS_PER_DAY;
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
```

https://github.com/llvm/llvm-project/pull/132231


More information about the libc-commits mailing list