diff --git a/lib/spack/env/cc b/lib/spack/env/cc index f72a6663a3..ffd1df8c7a 100755 --- a/lib/spack/env/cc +++ b/lib/spack/env/cc @@ -283,10 +283,19 @@ esac if [ -z "$mode" ] || [ "$mode" = ld ]; then for arg in "$@"; do case $arg in - -v|-V|--version|-dumpversion) + -V|--version|-dumpversion) mode=vcheck break ;; + -v) + # NOTE(trws): -v is verbose on gcc, not version, this is an ld-mode flag only + # -V is invalid on gcc but may be valid on some other compiler so leaving that in + case "$mode" in + ld) + mode=vcheck + break + ;; + esac esac done fi diff --git a/lib/spack/spack/test/cc.py b/lib/spack/spack/test/cc.py index 25aab774a7..16b5f828a4 100644 --- a/lib/spack/spack/test/cc.py +++ b/lib/spack/spack/test/cc.py @@ -244,10 +244,10 @@ def test_no_wrapper_environment(): def test_vcheck_mode(wrapper_environment): assert dump_mode(cc, ["-I/include", "--version"]) == "vcheck" assert dump_mode(cc, ["-I/include", "-V"]) == "vcheck" - assert dump_mode(cc, ["-I/include", "-v"]) == "vcheck" assert dump_mode(cc, ["-I/include", "-dumpversion"]) == "vcheck" assert dump_mode(cc, ["-I/include", "--version", "-c"]) == "vcheck" assert dump_mode(cc, ["-I/include", "-V", "-o", "output"]) == "vcheck" + assert dump_mode(ld, ["-I/include", "-v"]) == "vcheck" def test_cpp_mode(wrapper_environment):