Added -Wmissing-prototypes
This warning is useful for catching the easy mistake of missing the keyword static on functions intended to be internal-only. Missing the static keyword risks symbol polution and misses potential compiler optimizations. This is an interesting warning, while useful for libraries such as littlefs, it's perfectly valid C to not predeclare all functions, and common in final application binaries. Relatedly, this warning is re-disabled for the test/bench runner. There may be a better way to organize the CFLAGS, maybe into separate LIB/RUNNER CFLAGS, but I'll leave this to future work if our CFLAGS grow more complicated. This was motivated by non-static internal-only functions leaking into a release. Found and fixed by DvdGiessen.
This commit is contained in:
@@ -63,6 +63,7 @@ CFLAGS += -fcallgraph-info=su
|
|||||||
CFLAGS += -g3
|
CFLAGS += -g3
|
||||||
CFLAGS += -I.
|
CFLAGS += -I.
|
||||||
CFLAGS += -std=c99 -Wall -Wextra -pedantic
|
CFLAGS += -std=c99 -Wall -Wextra -pedantic
|
||||||
|
CFLAGS += -Wmissing-prototypes
|
||||||
CFLAGS += -ftrack-macro-expansion=0
|
CFLAGS += -ftrack-macro-expansion=0
|
||||||
ifdef DEBUG
|
ifdef DEBUG
|
||||||
CFLAGS += -O0
|
CFLAGS += -O0
|
||||||
@@ -354,6 +355,7 @@ summary-diff sizes-diff: $(OBJ) $(CI)
|
|||||||
|
|
||||||
## Build the test-runner
|
## Build the test-runner
|
||||||
.PHONY: test-runner build-test
|
.PHONY: test-runner build-test
|
||||||
|
test-runner build-test: CFLAGS+=-Wno-missing-prototypes
|
||||||
ifndef NO_COV
|
ifndef NO_COV
|
||||||
test-runner build-test: CFLAGS+=--coverage
|
test-runner build-test: CFLAGS+=--coverage
|
||||||
endif
|
endif
|
||||||
@@ -405,6 +407,7 @@ testmarks-diff: $(TEST_CSV)
|
|||||||
|
|
||||||
## Build the bench-runner
|
## Build the bench-runner
|
||||||
.PHONY: bench-runner build-bench
|
.PHONY: bench-runner build-bench
|
||||||
|
bench-runner build-bench: CFLAGS+=-Wno-missing-prototypes
|
||||||
ifdef YES_COV
|
ifdef YES_COV
|
||||||
bench-runner build-bench: CFLAGS+=--coverage
|
bench-runner build-bench: CFLAGS+=--coverage
|
||||||
endif
|
endif
|
||||||
|
|||||||
Reference in New Issue
Block a user