Skip to content

Commit 823b5e6

Browse files
authored
fix: resolve compiler warnings and enable -Werror across all CI platforms (#460)
1 parent e720c1f commit 823b5e6

53 files changed

Lines changed: 190 additions & 166 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/03-macos-linux-build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ jobs:
116116
python -m pip install -v . \
117117
--no-build-isolation \
118118
--config-settings='cmake.define.BUILD_TOOLS=ON' \
119+
--config-settings='cmake.define.ENABLE_WERROR=ON' \
119120
--config-settings='cmake.define.CMAKE_C_COMPILER_LAUNCHER=ccache' \
120121
--config-settings='cmake.define.CMAKE_CXX_COMPILER_LAUNCHER=ccache' \
121122
${{ matrix.arch_flag }}

.github/workflows/04-android-build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ jobs:
121121
-DBUILD_TOOLS=OFF \
122122
-DENABLE_NATIVE=OFF \
123123
-DAUTO_DETECT_ARCH=OFF \
124+
-DENABLE_WERROR=ON \
124125
-DCMAKE_INSTALL_PREFIX="$BUILD_DIR/install" \
125126
-DGLOBAL_CC_PROTOBUF_PROTOC="$GITHUB_WORKSPACE/build_host/bin/protoc" \
126127
-DCMAKE_C_COMPILER_LAUNCHER=ccache \

.github/workflows/05-windows-build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ jobs:
8383
python -m pip install -v . `
8484
--no-build-isolation `
8585
--config-settings='cmake.define.BUILD_TOOLS=ON' `
86+
--config-settings='cmake.define.ENABLE_WERROR=ON' `
8687
--config-settings='cmake.define.CMAKE_C_COMPILER_LAUNCHER=sccache' `
8788
--config-settings='cmake.define.CMAKE_CXX_COMPILER_LAUNCHER=sccache'
8889
shell: powershell

.github/workflows/06-ios-build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ jobs:
7171
-DCMAKE_BUILD_TYPE=Release \
7272
-DBUILD_PYTHON_BINDINGS=OFF \
7373
-DBUILD_TOOLS=OFF \
74+
-DENABLE_WERROR=ON \
7475
-DCMAKE_INSTALL_PREFIX="./install" \
7576
-DGLOBAL_CC_PROTOBUF_PROTOC="$GITHUB_WORKSPACE/build_host/bin/protoc" \
7677
-DIOS=ON \

.github/workflows/07-linux-riscv-build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ jobs:
221221
$PYTHON -m pip install -v . \
222222
--no-build-isolation \
223223
--config-settings='cmake.define.BUILD_TOOLS="ON"' \
224+
--config-settings='cmake.define.ENABLE_WERROR=ON' \
224225
--config-settings='cmake.define.CMAKE_C_COMPILER_LAUNCHER=ccache' \
225226
--config-settings='cmake.define.CMAKE_CXX_COMPILER_LAUNCHER=ccache'
226227
shell: bash

cmake/bazel.cmake

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -396,16 +396,23 @@ endif()
396396
if(NOT MSVC)
397397
# Use color in diagnostics
398398
set(
399-
_COMPILER_FLAGS
399+
_C_FLAGS
400+
"$<$<C_COMPILER_ID:Clang>:-fcolor-diagnostics>"
401+
"$<$<C_COMPILER_ID:AppleClang>:-fcolor-diagnostics>"
402+
"$<$<C_COMPILER_ID:GNU>:-fdiagnostics-color=always>"
403+
)
404+
set(
405+
_CXX_FLAGS
400406
"$<$<C_COMPILER_ID:Clang>:-fcolor-diagnostics;${CLANG_STDLIB_OPTION}>"
401407
"$<$<C_COMPILER_ID:AppleClang>:-fcolor-diagnostics>"
402408
"$<$<C_COMPILER_ID:GNU>:-fdiagnostics-color=always>"
403409
)
404410
add_compile_options(
405-
"$<$<COMPILE_LANGUAGE:C>:${_COMPILER_FLAGS}>"
406-
"$<$<COMPILE_LANGUAGE:CXX>:${_COMPILER_FLAGS}>"
411+
"$<$<COMPILE_LANGUAGE:C>:${_C_FLAGS}>"
412+
"$<$<COMPILE_LANGUAGE:CXX>:${_CXX_FLAGS}>"
407413
)
408-
unset(_COMPILER_FLAGS)
414+
unset(_C_FLAGS)
415+
unset(_CXX_FLAGS)
409416
else()
410417
option(ZVEC_USE_STATIC_CRT "Use static CRT (/MT) instead of dynamic CRT (/MD), default=ON" ON)
411418

@@ -477,13 +484,25 @@ set(
477484
)
478485

479486
# C/C++ strict compile flags
487+
if(ENABLE_WERROR)
488+
set(BAZEL_CC_WERROR_FLAGS
489+
"$<$<CXX_COMPILER_ID:Clang>:-Werror>"
490+
"$<$<CXX_COMPILER_ID:AppleClang>:-Werror>"
491+
"$<$<CXX_COMPILER_ID:GNU>:-Werror>"
492+
"$<$<CXX_COMPILER_ID:MSVC>:/WX>"
493+
)
494+
else()
495+
set(BAZEL_CC_WERROR_FLAGS "")
496+
endif()
497+
480498
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0)
481499
set(
482500
BAZEL_CC_STRICT_COMPILE_FLAGS
483501
"$<$<CXX_COMPILER_ID:Clang>:-Wall;-Wextra;-Wshadow>"
484502
"$<$<CXX_COMPILER_ID:AppleClang>:-Wall;-Wextra;-Wshadow>"
485503
"$<$<CXX_COMPILER_ID:GNU>:-Wall;-Wextra;-Wshadow-local;-Wno-misleading-indentation>"
486504
"$<$<CXX_COMPILER_ID:MSVC>:/W4>"
505+
${BAZEL_CC_WERROR_FLAGS}
487506
${BAZEL_CC_ASAN_COMPILE_FLAGS}
488507
${BAZEL_CC_COVERAGE_COMPILE_FLAGS}
489508
)
@@ -494,6 +513,7 @@ else()
494513
"$<$<CXX_COMPILER_ID:AppleClang>:-Wall;-Wextra;-Wshadow>"
495514
"$<$<CXX_COMPILER_ID:GNU>:-Wall;-Wextra;-Wshadow;-Wno-misleading-indentation>"
496515
"$<$<CXX_COMPILER_ID:MSVC>:/W4>"
516+
${BAZEL_CC_WERROR_FLAGS}
497517
${BAZEL_CC_ASAN_COMPILE_FLAGS}
498518
${BAZEL_CC_COVERAGE_COMPILE_FLAGS}
499519
)
@@ -503,7 +523,6 @@ endif()
503523
# C/C++ strict link flags
504524
set(
505525
BAZEL_CC_STRICT_LINK_FLAGS
506-
"$<$<CXX_COMPILER_ID:Clang>:${CLANG_STDLIB_OPTION}>"
507526
${BAZEL_CC_ASAN_COMPILE_FLAGS}
508527
${BAZEL_CC_COVERAGE_COMPILE_FLAGS}
509528
)
@@ -522,7 +541,6 @@ set(
522541
# C/C++ unstrict link flags
523542
set(
524543
BAZEL_CC_UNSTRICT_LINK_FLAGS
525-
"$<$<CXX_COMPILER_ID:Clang>:${CLANG_STDLIB_OPTION}>"
526544
${BAZEL_CC_ASAN_COMPILE_FLAGS}
527545
${BAZEL_CC_COVERAGE_COMPILE_FLAGS}
528546
)

cmake/option.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ option(ENABLE_ARMV8.6A "Enable ARMv8.6-a architecture" OFF)
3333
## OpenMP option
3434
option(ENABLE_OPENMP "Enable OpenMP support" OFF)
3535

36+
## Treat warnings as errors (for CI)
37+
option(ENABLE_WERROR "Treat compiler warnings as errors in strict targets" OFF)
38+
3639
set(ARCH_OPTIONS
3740
ENABLE_NEHALEM ENABLE_SANDYBRIDGE ENABLE_HASWELL ENABLE_BROADWELL ENABLE_SKYLAKE
3841
ENABLE_SKYLAKE_AVX512 ENABLE_ICELAKE ENABLE_SAPPHIRERAPIDS ENABLE_EMERALDRAPIDS ENABLE_GRANITERAPIDS

src/ailego/utility/float_helper.cc

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,16 @@
2424

2525
#if defined(__aarch64__)
2626
static inline float float32(uint16_t val) {
27-
__fp16 *p = reinterpret_cast<__fp16 *>(&val);
28-
return *p;
27+
__fp16 f;
28+
memcpy(&f, &val, sizeof(val));
29+
return static_cast<float>(f);
2930
}
3031

3132
static inline uint16_t float16(float val) {
3233
__fp16 f = static_cast<__fp16>(val);
33-
uint16_t *fp = reinterpret_cast<uint16_t *>(&f);
34-
return *fp;
34+
uint16_t result;
35+
memcpy(&result, &f, sizeof(result));
36+
return result;
3537
}
3638

3739
static inline void convert_fp16_to_fp32(const uint16_t *arr, size_t size,

src/binding/python/model/python_doc.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ void ZVecPyDoc::bind_doc(py::module_ &m) {
285285
d[py::int_(indices[i])] =
286286
py::float_(static_cast<float>(values[i]));
287287
}
288-
return std::move(d);
288+
return d;
289289
}
290290
case DataType::SPARSE_VECTOR_FP32: {
291291
auto vector =
@@ -297,7 +297,7 @@ void ZVecPyDoc::bind_doc(py::module_ &m) {
297297
for (size_t i = 0; i < indices.size(); ++i) {
298298
d[py::int_(indices[i])] = py::float_(values[i]);
299299
}
300-
return std::move(d);
300+
return d;
301301
}
302302
default:
303303
throw py::type_error("Unsupported type for field: " + field);
@@ -414,7 +414,7 @@ void ZVecPyDoc::bind_doc(py::module_ &m) {
414414
d[py::int_(indices[i])] =
415415
py::float_(static_cast<float>(values[i]));
416416
}
417-
return std::move(d);
417+
return d;
418418
}
419419
case DataType::SPARSE_VECTOR_FP32: {
420420
auto vector = self.get<
@@ -426,7 +426,7 @@ void ZVecPyDoc::bind_doc(py::module_ &m) {
426426
for (size_t i = 0; i < indices.size(); ++i) {
427427
d[py::int_(indices[i])] = py::float_(values[i]);
428428
}
429-
return std::move(d);
429+
return d;
430430
}
431431
default:
432432
throw py::type_error("Unsupported type for field: " + vec);

src/core/algorithm/diskann/diskann_file_reader.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class AlignedFileReader {
6262
public:
6363
virtual IOContext &get_ctx() = 0;
6464

65-
virtual ~AlignedFileReader() {};
65+
virtual ~AlignedFileReader() {}
6666

6767
virtual void register_thread() = 0;
6868
virtual void deregister_thread() = 0;
@@ -77,7 +77,6 @@ class AlignedFileReader {
7777

7878
class LinuxAlignedFileReader : public AlignedFileReader {
7979
private:
80-
uint64_t file_sz;
8180
int file_desc;
8281

8382
IOContext bad_ctx = (IOContext)-1;

0 commit comments

Comments
 (0)