From 01bc9ad38726f027be9659201911da7184bbee81 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Thu, 15 Sep 2022 15:43:17 +0200 Subject: [PATCH] [fc-scripts] use AST_DIFF variable to trigger incremental analysis in Eva updating parsing results is irrelevant --- share/analysis-scripts/analysis.mk | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/share/analysis-scripts/analysis.mk b/share/analysis-scripts/analysis.mk index a5a5c94a4a3..f029ddd5773 100644 --- a/share/analysis-scripts/analysis.mk +++ b/share/analysis-scripts/analysis.mk @@ -162,9 +162,6 @@ SHELL := $(shell which bash) %.parse: SOURCES = $(filter-out %/command,$^) %.parse: PARSE = $(FRAMAC) \ - $(if $(AST_DIFF),\ - $(if $(wildcard $@/framac.sav $*.eva/framac.sav),\ - -load $@/framac.reparse -then -no-eva -ast-diff,),) \ $(FCFLAGS) \ $(if $(value MACHDEP),-machdep $(MACHDEP),) \ -cpp-extra-args="$(CPPFLAGS)" $(SOURCES) \ @@ -199,7 +196,14 @@ SHELL := $(shell which bash) mv $@/{running,command} touch $@ # Update timestamp and prevent remake if nothing changes -%.eva: EVA = $(FRAMAC) $(FCFLAGS) -eva $(EVAFLAGS) +define incremental + $(if $(AST_DIFF),\ + $(if $(wildcard $@/framac.sav),\ + -eva-load $@/framac.sav,\ + $(warning Cannot do incremental analysis: no previously saved state))) +endef + +%.eva: EVA = $(FRAMAC) $(FCFLAGS) -eva $(call incremental,$1) $(EVAFLAGS) %.eva: PARSE_RESULT = $(word 1,$(subst ., ,$*)).parse %.eva: $$(PARSE_RESULT) $$(shell $(SHELL) $(DIR)cmd-dep.sh $$@/command $$(EVA)) $(if $(BENCHMARK),.FORCE,) @$(call display_command,$(EVA)) @@ -208,7 +212,7 @@ SHELL := $(shell which bash) { $(call time_with_output,$@/stats.txt) \ $(EVA) \ - -load $(PARSE_RESULT)/framac.sav -save $@/framac.sav \ + -load $(PARSE_RESULT)/framac.sav \ -eva-flamegraph $@/flamegraph.txt \ -kernel-log w:$@/warnings.log \ -from-log w:$@/warnings.log \ @@ -216,6 +220,8 @@ SHELL := $(shell which bash) -scope-log w:$@/warnings.log \ -eva-log w:$@/warnings.log \ -then \ + -remove-projects @all_but_current -save $@/framac.sav \ + -then \ -report-csv $@/alarms.csv -report-no-proven \ -report-log w:$@/warnings.log \ -metrics-eva-cover \ -- GitLab