diff --git a/nix/default.nix b/nix/default.nix index c8e4966f3f26110ec5cfa96fd6629275292a6864..0121a1d19f4c87a04e15fa7da4876daede52c45c 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -15,13 +15,20 @@ let mk_buildInputs = { opamPackages ? [], nixPackages ? [] } : ocamlAttr = ocaml_version; }; + # Extends the call to stdenv.mkDerivation with parameters common for all + # frama-c derivations + mk_deriv = args: + stdenv.mkDerivation ({ + # Disable Nix's GCC hardening + hardeningDisable = [ "all" ]; + } // args); in rec { inherit src mk_buildInputs; buildInputs = mk_buildInputs {}; installed = main.out; - main = stdenv.mkDerivation { + main = mk_deriv { name = "frama-c"; inherit src buildInputs; outputs = [ "out" "build_dir" ]; @@ -63,7 +70,7 @@ rec { ''; }; - lint = stdenv.mkDerivation { + lint = mk_deriv { name = "frama-c-lint"; inherit src; buildInputs = (mk_buildInputs { opamPackages = [ { name = "ocp-indent"; constraint = "=1.7.0"; } ];} ) @@ -87,7 +94,7 @@ rec { ''; }; - tests = stdenv.mkDerivation { + tests = mk_deriv { name = "frama-c-test"; inherit buildInputs; build_dir = main.build_dir; @@ -109,7 +116,7 @@ rec { ''; }; - build-distrib-tarball = stdenv.mkDerivation { + build-distrib-tarball = mk_deriv { name = "frama-c-build-distrib-tarball"; inherit src; buildInputs = buildInputs ++ [ plugins.headache.installed ]; @@ -132,7 +139,7 @@ rec { ''; }; - build-from-distrib-tarball = stdenv.mkDerivation { + build-from-distrib-tarball = mk_deriv { name = "frama-c-build-from-distrib-tarball"; inherit buildInputs; src = build-distrib-tarball.out ; @@ -150,7 +157,7 @@ rec { ''; }; - wp-qualif = stdenv.mkDerivation { + wp-qualif = mk_deriv { name = "frama-c-wp-qualif"; buildInputs = mk_buildInputs { opamPackages = [ { name = "alt-ergo"; constraint = "=2.0.0"; } @@ -180,7 +187,7 @@ rec { ''; }; - e-acsl-tests-dev = stdenv.mkDerivation { + e-acsl-tests-dev = mk_deriv { name = "frama-c-e-acsl-tests-dev"; buildInputs = mk_buildInputs { nixPackages = [ pkgs.gmp pkgs.getopt ]; }; build_dir = main.build_dir; @@ -202,7 +209,7 @@ rec { ''; }; - internal = stdenv.mkDerivation { + internal = mk_deriv { name = "frama-c-internal"; inherit src; buildInputs = (mk_buildInputs { opamPackages = [ "xml-light" ]; } ) ++ diff --git a/src/plugins/e-acsl/tests/bts/bts1398.c b/src/plugins/e-acsl/tests/bts/bts1398.c index 408d069e4ee4d948e31e4575b133f57d414df23b..9dbd83d269e0b636508a91221f8dfbb292c62a9f 100644 --- a/src/plugins/e-acsl/tests/bts/bts1398.c +++ b/src/plugins/e-acsl/tests/bts/bts1398.c @@ -1,7 +1,3 @@ -/* run.config_dev - COMMENT: issue with printf on CI - DONTRUN: -*/ /* run.config_ci COMMENT: variadic function call */ diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/bts1398.res.oracle b/src/plugins/e-acsl/tests/bts/oracle_ci/bts1398.res.oracle index a9c9e5c65e98d3f5f69ee0dbb2df47c1a5488782..196be478e598103ead236a8d08d82218bc6d0d9d 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/bts1398.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/bts1398.res.oracle @@ -1,4 +1,4 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[kernel:annot:missing-spec] tests/bts/bts1398.c:16: Warning: +[kernel:annot:missing-spec] tests/bts/bts1398.c:12: Warning: Neither code nor specification for function printf, generating default assigns from the prototype diff --git a/src/plugins/e-acsl/tests/full-mmodel/addrOf.i b/src/plugins/e-acsl/tests/full-mmodel/addrOf.i index c3726404e6f8607953c074eb6a0ce06307dc1867..281703719852d97b3b865510c8ea8d67c049a045 100644 --- a/src/plugins/e-acsl/tests/full-mmodel/addrOf.i +++ b/src/plugins/e-acsl/tests/full-mmodel/addrOf.i @@ -1,7 +1,3 @@ -/* run.config_dev - COMMENT: issue with function pointers on CI - DONTRUN: -*/ /* run.config_ci COMMENT: addrOf */ diff --git a/src/plugins/e-acsl/tests/full-mmodel/oracle_ci/gen_addrOf.c b/src/plugins/e-acsl/tests/full-mmodel/oracle_ci/gen_addrOf.c index ca3a611c9bd240c6dba0d59cbea332b76cbe4f44..e7da245320f44ca617784993e0bf842400a92cff 100644 --- a/src/plugins/e-acsl/tests/full-mmodel/oracle_ci/gen_addrOf.c +++ b/src/plugins/e-acsl/tests/full-mmodel/oracle_ci/gen_addrOf.c @@ -19,7 +19,7 @@ void f(void) int __gen_e_acsl_initialized; __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int)); __e_acsl_assert(__gen_e_acsl_initialized,"Assertion","f", - "\\initialized(p)","tests/full-mmodel/addrOf.i",14); + "\\initialized(p)","tests/full-mmodel/addrOf.i",10); } /*@ assert \initialized(p); */ ; __e_acsl_delete_block((void *)(& p)); @@ -82,7 +82,7 @@ int main(void) __e_acsl_full_init((void *)(& x)); f(); __e_acsl_assert(& x == & x,"Assertion","main","&x == &x", - "tests/full-mmodel/addrOf.i",20); + "tests/full-mmodel/addrOf.i",16); /*@ assert &x ≡ &x; */ ; __e_acsl_full_init((void *)(& __retres)); __retres = 0; diff --git a/src/plugins/e-acsl/tests/memory/constructor.c b/src/plugins/e-acsl/tests/memory/constructor.c index 32e630a32788679eb2571379587ebad512b111fe..8530264c83f3dff89a26d3dc0beaa254942795a8 100644 --- a/src/plugins/e-acsl/tests/memory/constructor.c +++ b/src/plugins/e-acsl/tests/memory/constructor.c @@ -1,7 +1,3 @@ -/* run.config_dev - COMMENT: issue with printf on CI - DONTRUN: -*/ /* run.config_ci COMMENT: bts #2405. Memory not initialized for code executed before main. */ diff --git a/src/plugins/e-acsl/tests/memory/hidden_malloc.c b/src/plugins/e-acsl/tests/memory/hidden_malloc.c index 3900421de1c7da2824fd45627ebcfb7fc1c453b8..7d220a59517efd7bd62e13946568cae3d0b613fd 100644 --- a/src/plugins/e-acsl/tests/memory/hidden_malloc.c +++ b/src/plugins/e-acsl/tests/memory/hidden_malloc.c @@ -1,7 +1,3 @@ -/* run.config_dev - COMMENT: issue on CI - DONTRUN: -*/ /* run.config_ci COMMENT: Malloc executed by a library function */ diff --git a/src/plugins/e-acsl/tests/memory/local_goto.c b/src/plugins/e-acsl/tests/memory/local_goto.c index 397f145cc16cd6eb5cdcdce28a0e0a103f03921a..a5448bf07063eeaa318549d0c51931ddf7357998 100644 --- a/src/plugins/e-acsl/tests/memory/local_goto.c +++ b/src/plugins/e-acsl/tests/memory/local_goto.c @@ -1,7 +1,3 @@ -/* run.config_dev - COMMENT: issue with printf on CI - DONTRUN: -*/ /* run.config_ci COMMENT: Check that deleting statements before goto jumps takes into COMMENT: account variable declarations given via local inits diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/constructor.res.oracle b/src/plugins/e-acsl/tests/memory/oracle_ci/constructor.res.oracle index c660eb1a183b3770435f15404e2c620d30c13493..850186d110a852c7deff7b8cb2ed345dd9a3abe3 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/constructor.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/constructor.res.oracle @@ -1,4 +1,4 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[kernel:annot:missing-spec] tests/memory/constructor.c:20: Warning: +[kernel:annot:missing-spec] tests/memory/constructor.c:16: Warning: Neither code nor specification for function printf, generating default assigns from the prototype diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_goto.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_goto.c index 707853628e0809429f024754938dc89d741936cc..2cf1cc44c0cd0dd389bce183c8fa9c4fdb3ef873 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_goto.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_goto.c @@ -54,7 +54,7 @@ int main(int argc, char const **argv) __gen_e_acsl_valid = __e_acsl_valid((void *)(& a),sizeof(int), (void *)(& a),(void *)0); __e_acsl_assert(__gen_e_acsl_valid,"Assertion","main","\\valid(&a)", - "tests/memory/local_goto.c",29); + "tests/memory/local_goto.c",25); } /*@ assert \valid(&a); */ ; if (t == 2) { @@ -71,7 +71,7 @@ int main(int argc, char const **argv) __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& b),sizeof(int), (void *)(& b),(void *)0); __e_acsl_assert(__gen_e_acsl_valid_2,"Assertion","main","\\valid(&b)", - "tests/memory/local_goto.c",40); + "tests/memory/local_goto.c",36); } /*@ assert \valid(&b); */ ; printf(__gen_e_acsl_literal_string_2,t,__gen_e_acsl_literal_string_4); diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/hidden_malloc.res.oracle b/src/plugins/e-acsl/tests/memory/oracle_ci/hidden_malloc.res.oracle index 7bb9d547bffed4a48e6a08788bb7ec3e12e802c2..cecec801d917584a0d8bcf334b1f14c947fb38a8 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/hidden_malloc.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/hidden_malloc.res.oracle @@ -1,9 +1,9 @@ -[kernel:typing:implicit-function-declaration] tests/memory/hidden_malloc.c:15: Warning: +[kernel:typing:implicit-function-declaration] tests/memory/hidden_malloc.c:11: Warning: Calling undeclared function realpath. Old style K&R code? [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[kernel:annot:missing-spec] tests/memory/hidden_malloc.c:15: Warning: +[kernel:annot:missing-spec] tests/memory/hidden_malloc.c:11: Warning: Neither code nor specification for function realpath, generating default assigns from the prototype -[eva:invalid-assigns] tests/memory/hidden_malloc.c:15: +[eva:invalid-assigns] tests/memory/hidden_malloc.c:11: Completely invalid destination for assigns clause *((char *)x_1 + (0 ..)). Ignoring. diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/local_goto.res.oracle b/src/plugins/e-acsl/tests/memory/oracle_ci/local_goto.res.oracle index 74588e72426d633d658a62543d219708afb71011..142c3f2be0104e92d2deba3a08cd8d2a0b4b1f10 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/local_goto.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/local_goto.res.oracle @@ -1,4 +1,4 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[kernel:annot:missing-spec] tests/memory/local_goto.c:41: Warning: +[kernel:annot:missing-spec] tests/memory/local_goto.c:37: Warning: Neither code nor specification for function printf, generating default assigns from the prototype diff --git a/src/plugins/e-acsl/tests/test_config_dev.in b/src/plugins/e-acsl/tests/test_config_dev.in index 8a01dabc2fff701b297a64e5ca32911b5fc81414..b425a92ef845aa9c2b780656c0a153c19f48ee3b 100644 --- a/src/plugins/e-acsl/tests/test_config_dev.in +++ b/src/plugins/e-acsl/tests/test_config_dev.in @@ -6,7 +6,7 @@ MACRO: EACSL_ERR @PTEST_NAME@.e-acsl.err.log COMMENT: Define the following macro to "no" in a test to stop the execution of `e-acsl-gcc.sh` MACRO: ROOT_EACSL_GCC_ENABLE yes COMMENT: Default options for `e-acsl-gcc.sh` -MACRO: ROOT_EACSL_GCC_MISC_OPTS -D -q -X +MACRO: ROOT_EACSL_GCC_MISC_OPTS -q -X COMMENT: Default options for the frama-c invocation MACRO: ROOT_EACSL_GCC_FC_EXTRA -journal-disable -verbose 0 -kernel-warn-key *=inactive COMMENT: Define the following macro in a test to pass extra options to the frama-c invocation