Skip to content

Fix misc. warnings found by clang-16#521

Merged
WayneD merged 3 commits intoRsyncProject:masterfrom
hhoffstaette:clang-warnings
Nov 20, 2024
Merged

Fix misc. warnings found by clang-16#521
WayneD merged 3 commits intoRsyncProject:masterfrom
hhoffstaette:clang-warnings

Conversation

@hhoffstaette
Copy link
Contributor

@hhoffstaette hhoffstaette commented Sep 4, 2023

These warnings may seem benign but will soon turn into compilation errors, starting with clang-17 and gcc-14. I tried hard to find a use for the duplicated (and incorrect) lseek prototypes, but could not find any.
The alignment issue was also flagged by clang. I'm not a SIMD expert but explicit 1-byte aligment for a vector seems wrong.

With these fixes rsync itself is now 100% warning-free :)

Building with clang-16 complains with:
./simd-checksum-x86_64.cpp:204:25: warning: passing 1-byte aligned argument to
  16-byte aligned parameter 1 of '_mm_store_si128' may result in an unaligned pointer
  access [-Walign-mismatch]

Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com>
Clang rightfully complains about invoking bomb(..) without a proper prototype:
  lib/pool_alloc.c:171:16: warning: passing arguments to a function without a prototype
  is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
                (*pool->bomb)(bomb_msg, __FILE__, __LINE__);
                             ^
1 warning generated.

Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com>
Clang rightfully complains about conflicting prototypes, as both lseek() variants
are redefined:

  syscall.c:394:10: warning: a function declaration without a prototype is deprecated
  in all versions of C and is treated as a zero-parameter prototype in C2x, conflicting
  with a previous declaration [-Wdeprecated-non-prototype]
        off64_t lseek64();
                ^
/usr/include/unistd.h:350:18: note: conflicting prototype is here
extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
                 ^
1 warning generated.

The point of the #ifdef is to build for the configured OFF_T; there is
no reason to redefine lseek/lseek64, which should have been found
via configure.

Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com>
@tridge
Copy link
Member

tridge commented Apr 6, 2024

looks good, assigning to @WayneD for merge

@WayneD WayneD merged commit 0706988 into RsyncProject:master Nov 20, 2024
@hhoffstaette hhoffstaette deleted the clang-warnings branch November 24, 2024 11:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants