diff --git a/overlay.nix b/overlay.nix index 0f054e5..3c7c9bc 100644 --- a/overlay.nix +++ b/overlay.nix @@ -359,6 +359,7 @@ let compilers.hello-cpp = callPackage ./test/compilers/hello-cpp.nix { }; compilers.hello-f = callPackage ./test/compilers/hello-f.nix { }; compilers.lto = callPackage ./test/compilers/lto.nix { }; + compilers.asan = callPackage ./test/compilers/asan.nix { }; compilers.intel2023.icx.c = compilers.hello-c.override { stdenv = bsc.intel2023.stdenv; }; @@ -377,6 +378,9 @@ let compilers.clangOmpss2.lto = compilers.lto.override { stdenv = bsc.stdenvClangOmpss2; }; + compilers.clangOmpss2.asan = compilers.asan.override { + stdenv = bsc.stdenvClangOmpss2; + }; compilers.clangOmpss2.task = callPackage ./test/compilers/ompss2.nix { stdenv = bsc.stdenvClangOmpss2; }; @@ -393,6 +397,7 @@ let compilers.intel2023.ifort compilers.clangOmpss2.lto compilers.clangOmpss2.task + compilers.clangOmpss2.asan compilers.clangNodes.task ]; diff --git a/test/compilers/asan.nix b/test/compilers/asan.nix new file mode 100644 index 0000000..63b057e --- /dev/null +++ b/test/compilers/asan.nix @@ -0,0 +1,32 @@ +{ stdenv, writeText, which, strace }: + +let + hello_c = writeText "hello.c" '' + #include + + int main() + { + printf("Hello world!\n"); + return 0; + } + ''; +in + +stdenv.mkDerivation rec { + version = "0.0.1"; + name = "asan-c"; + buildInputs = [ stdenv which strace ]; + src = hello_c; + dontUnpack = true; + dontConfigure = true; + NIX_DEBUG = 0; + buildPhase = '' + cp ${hello_c} hello.c + $CC -v -fsanitize=address hello.c -o hello + ./hello + ''; + + installPhase = '' + touch $out + ''; +}