Fix issues with newer clang
- Clang now complains about declarations after statements in C code,
even when the standard is set to something higher than C99. Disable
that warning (but only do this for C source, because GCC doesn't like
that warning applied to C++ sources).
- As of Clang 14, the default for fp-contract is "on", even when
optimizations are disabled. This was leading to many test failures.
https://releases.llvm.org/14.0.0/tools/clang/docs/ReleaseNotes.html#floating-point-support-in-clang
Change-Id: I8cafd5bbde60d629ee5a26e69fd8e7c212296b10
Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/583741
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/ninja/clang b/ninja/clang
index ae96f28..1a4b7e6 100644
--- a/ninja/clang
+++ b/ninja/clang
@@ -1,6 +1,6 @@
cc = clang
cxx = clang++
-cflags = -fcolor-diagnostics -Weverything
+cflags = -fcolor-diagnostics -Weverything -ffp-contract=off
out = out/clang$mode
include ninja/local
diff --git a/ninja/common b/ninja/common
index 2984f83..147a569 100644
--- a/ninja/common
+++ b/ninja/common
@@ -10,6 +10,9 @@
-Wno-float-equal $
-Wno-padded $
+warnings_c = $warnings $
+ -Wno-declaration-after-statement $
+
warnings_cc = $warnings $
-Wno-c++98-compat-pedantic $
-Wno-gnu-anonymous-struct $
@@ -17,7 +20,7 @@
rule compile_c
- command = $disabled && touch $out || $cc -std=c11 -g -Os $warnings $cflags $extra_cflags $
+ command = $disabled && touch $out || $cc -std=c11 -g -Os $warnings_c $cflags $extra_cflags $
-MD -MF $out.d -c $in -o $out
depfile = $out.d
deps = gcc