Skip to content

Commit

Permalink
gh-actions: test with clang-16
Browse files Browse the repository at this point in the history
ci clang-16: silence "unsafe-buffer-usage" warning

Seems to be a false positive

Fixes: #1084
  • Loading branch information
mr-c committed Oct 19, 2023
1 parent 43ac8fc commit e25ced8
Show file tree
Hide file tree
Showing 7 changed files with 127 additions and 21 deletions.
32 changes: 19 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -389,42 +389,37 @@ jobs:

clang-qemu:
strategy:
fail-fast: false
matrix:
include:
- version: 15
- version: 16
cross: armv7
arch_deb: armhf
arch_gnu_abi: eabihf
arch_gnu: arm
distro: ubuntu-22.04
- version: 15
- version: 16
cross: aarch64
arch_gnu: aarch64
arch_deb: arm64
distro: ubuntu-22.04
- version: 15
- version: 16
cross: armel
arch_gnu_abi: eabi
arch_deb: armel
arch_gnu: arm
distro: ubuntu-22.04
- version: 15
- version: 16
cross: riscv64
arch_gnu: riscv64
arch_deb: riscv64
distro: ubuntu-22.04
# - version: 15
# cross: armel
# arch_gnu_abi: eabi
# arch_deb: armel
# arch_gnu: arm
# distro: ubuntu-22.04
# - version: 15
# - version: 16
# cross: s390x
# arch_gnu: s390x
# arch_deb: s390x
# distro: ubuntu-22.04
- version: 15
- version: 16
cross: ppc64el
arch_deb: ppc64el
arch_gnu: powerpc64le
Expand All @@ -440,6 +435,7 @@ jobs:
- name: Install APT Dependencies
run: |
sudo add-apt-repository ppa:savoury1/virtualisation
sudo add-apt-repository ppa:savoury1/display
sudo apt-get update -y
sudo apt-get -yq install ninja-build parallel \
binfmt-support clang-${{ matrix.version }} clang++-${{ matrix.version }} \
Expand All @@ -454,7 +450,9 @@ jobs:
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
- name: Configure
run: meson setup --cross-file=docker/cross-files/${{ matrix.cross }}-clang-${{ matrix.version }}-ccache.cross build
run: |
meson setup --cross-file=docker/cross-files/${{ matrix.cross }}-clang-${{ matrix.version }}-ccache.cross build \
|| (cat build/meson-logs/meson-log.txt ; false)
- name: Build
run: ninja -C build -v
- name: Test
Expand Down Expand Up @@ -504,6 +502,13 @@ jobs:
distro: ubuntu-22.04
arch_flags: -ffast-math
ccache: 'true'
- version: "16"
distro: ubuntu-22.04
arch_flags: -march=native -Wno-unsafe-buffer-usage
- version: "16"
distro: ubuntu-22.04
arch_flags: -ffast-math -Wno-unsafe-buffer-usage
ccache: 'true'
runs-on: ${{ matrix.distro }}
env:
CFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -fno-lax-vector-conversions
Expand All @@ -517,6 +522,7 @@ jobs:
- name: Install APT Dependencies
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo add-apt-repository ppa:savoury1/display
sudo apt-get update
sudo apt-get -yq install gcovr ninja-build python3-pip clang-${{ matrix.version }}
sudo python3 -m pip install meson==0.55.0
Expand Down
20 changes: 20 additions & 0 deletions docker/cross-files/aarch64-clang-16-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[binaries]
c = ['ccache', 'clang-16']
cpp = ['ccache', 'clang++-16']
ar = 'llvm-ar-16'
strip = 'llvm-strip-16'
objcopy = 'llvm-objcopy-16'
ld = 'llvm-ld-16'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']

[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']

[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'
20 changes: 20 additions & 0 deletions docker/cross-files/armv7-clang-16-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[binaries]
c = ['ccache', 'clang-16']
cpp = ['ccache', 'clang++-16']
ar = 'llvm-ar-16'
strip = 'llvm-strip-16'
objcopy = 'llvm-objcopy-16'
ld = 'llvm-ld-16'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']

[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']

[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'
20 changes: 20 additions & 0 deletions docker/cross-files/ppc64el-clang-16-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[binaries]
c = ['ccache', 'clang-16']
cpp = ['ccache', 'clang++-16']
ar = 'llvm-ar-16'
strip = 'llvm-strip-16'
objcopy = 'llvm-objcopy-16'
ld = 'llvm-ld-16'
exe_wrapper = ['qemu-ppc64le-static', '-L', '/usr/powerpc64le-linux-gnu/']

[properties]
c_args = ['--target=powerpc64le-linux-gnu', '-isystem=/usr/powerpc64le-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-deprecated-altivec-src-compat', '-Wno-unsafe-buffer-usage']
cpp_args = ['--target=powerpc64le-linux-gnu', '-isystem=/usr/powerpc64le-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-deprecated-altivec-src-compat', '-Wno-unsafe-buffer-usage']
c_link_args = ['--target=powerpc64le-linux-gnu']
cpp_link_args = ['--target=powerpc64le-linux-gnu']

[host_machine]
system = 'linux'
cpu_family = 'ppc64'
cpu = 'ppc64el'
endian = 'little'
20 changes: 20 additions & 0 deletions docker/cross-files/riscv64-clang-16-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[binaries]
c = ['ccache', 'clang-16']
cpp = ['ccache', 'clang++-16']
ar = 'llvm-ar-16'
strip = 'llvm-strip-16'
objcopy = 'llvm-objcopy-16'
ld = 'llvm-ld-16'
exe_wrapper = ['qemu-riscv64-static', '-L', '/usr/riscv64-linux-gnu/']

[properties]
c_args = ['--target=riscv64-linux-gnu', '-isystem=/usr/riscv64-linux-gnu/include', '-Wextra', '-Werror', '-Wno-unsafe-buffer-usage']
cpp_args = ['--target=riscv64-linux-gnu', '-isystem=/usr/riscv64-linux-gnu/include', '-Wextra', '-Werror', '-Wno-unsafe-buffer-usage']
c_link_args = ['--target=riscv64-linux-gnu']
cpp_link_args = ['--target=riscv64-linux-gnu']

[host_machine]
system = 'linux'
cpu_family = 'riscv64'
cpu = 'riscv64'
endian = 'little'
20 changes: 20 additions & 0 deletions docker/cross-files/s390x-clang-16-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[binaries]
c = ['ccache', 'clang-16']
cpp = ['ccache', 'clang++-16']
ar = 'llvm-ar-16'
strip = 'llvm-strip-16'
objcopy = 'llvm-objcopy-16'
ld = 'llvm-ld-16'
exe_wrapper = ['qemu-s390x-static', '-L', '/usr/s390x-linux-gnu/']

[properties]
c_args = ['--target=s390x-ibm-linux', '-mpcu=z196', '-isystem=/usr/s390x-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage']
cpp_args = ['--target=s390x-ibm-linux', '-mpcu=z196', '-isystem=/usr/s390x-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage']
c_link_args = ['--target=s390x-ibm-linux']
cpp_link_args = ['--target=s390x-ibm-linux']

[host_machine]
system = 'linux'
cpu_family = 's390x'
cpu = 's390x'
endian = 'big'
16 changes: 8 additions & 8 deletions simde/simde-math.h
Original file line number Diff line number Diff line change
Expand Up @@ -1514,7 +1514,7 @@ simde_math_fpclass(double v, const int imm8) {
static HEDLEY_INLINE
double
simde_math_cdfnorminv(double p) {
static const double a[] = {
static const double a[6] = {
-3.969683028665376e+01,
2.209460984245205e+02,
-2.759285104469687e+02,
Expand All @@ -1523,15 +1523,15 @@ simde_math_fpclass(double v, const int imm8) {
2.506628277459239e+00
};

static const double b[] = {
static const double b[5] = {
-5.447609879822406e+01,
1.615858368580409e+02,
-1.556989798598866e+02,
6.680131188771972e+01,
-1.328068155288572e+01
};

static const double c[] = {
static const double c[6] = {
-7.784894002430293e-03,
-3.223964580411365e-01,
-2.400758277161838e+00,
Expand All @@ -1540,7 +1540,7 @@ simde_math_fpclass(double v, const int imm8) {
2.938163982698783e+00
};

static const double d[] = {
static const double d[4] = {
7.784695709041462e-03,
3.224671290700398e-01,
2.445134137142996e+00,
Expand Down Expand Up @@ -1581,30 +1581,30 @@ simde_math_fpclass(double v, const int imm8) {
static HEDLEY_INLINE
float
simde_math_cdfnorminvf(float p) {
static const float a[] = {
static const float a[6] = {
-3.969683028665376e+01f,
2.209460984245205e+02f,
-2.759285104469687e+02f,
1.383577518672690e+02f,
-3.066479806614716e+01f,
2.506628277459239e+00f
};
static const float b[] = {
static const float b[5] = {
-5.447609879822406e+01f,
1.615858368580409e+02f,
-1.556989798598866e+02f,
6.680131188771972e+01f,
-1.328068155288572e+01f
};
static const float c[] = {
static const float c[6] = {
-7.784894002430293e-03f,
-3.223964580411365e-01f,
-2.400758277161838e+00f,
-2.549732539343734e+00f,
4.374664141464968e+00f,
2.938163982698783e+00f
};
static const float d[] = {
static const float d[4] = {
7.784695709041462e-03f,
3.224671290700398e-01f,
2.445134137142996e+00f,
Expand Down

0 comments on commit e25ced8

Please sign in to comment.