diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f3100bee..f18c23d4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -454,8 +454,7 @@ jobs: TESTFLAGS="$TESTFLAGS --valgrind --context=1024 -Gdefault -Pnone" \ make test - # test that compilation is warning free under clang - # run with Clang, mostly to check for Clang-specific warnings + # compile/run with Clang, mostly to check for Clang-specific warnings test-clang: runs-on: ubuntu-latest steps: @@ -469,12 +468,8 @@ jobs: python3 --version - name: test-clang run: | - # override CFLAGS since Clang does not support -fcallgraph-info - # and -ftrack-macro-expansions - make \ - CC=clang \ - CFLAGS="$CFLAGS -MMD -g3 -I. -std=c99 -Wall -Wextra -pedantic" \ - test + CC=clang \ + make test # run benchmarks # diff --git a/Makefile b/Makefile index 51e9f98e..588e095d 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,12 @@ VALGRIND ?= valgrind GDB ?= gdb PERF ?= perf +# guess clang or gcc (clang sometimes masquerades as gcc because of +# course it does) +ifneq ($(shell $(CC) --version | grep clang),) +NO_GCC = 1 +endif + SRC ?= $(filter-out $(wildcard *.t.* *.b.*),$(wildcard *.c)) OBJ := $(SRC:%.c=$(BUILDDIR)/%.o) DEP := $(SRC:%.c=$(BUILDDIR)/%.d) @@ -59,12 +65,15 @@ BENCH_PERF := $(BENCH_RUNNER:%=%.perf) BENCH_TRACE := $(BENCH_RUNNER:%=%.trace) BENCH_CSV := $(BENCH_RUNNER:%=%.csv) -CFLAGS += -fcallgraph-info=su CFLAGS += -g3 CFLAGS += -I. CFLAGS += -std=c99 -Wall -Wextra -pedantic CFLAGS += -Wmissing-prototypes +ifndef NO_GCC +CFLAGS += -fcallgraph-info=su CFLAGS += -ftrack-macro-expansion=0 +endif + ifdef DEBUG CFLAGS += -O0 else