Fixes issue #112.
/* All other arguments are included in the hash. */
hash_delimiter(hash, "arg");
hash_string(hash, args->argv[i]);
+ if (i + 1 < args->argc && compopt_takes_arg(args->argv[i])) {
+ i++;
+ hash_delimiter(hash, "arg");
+ hash_string(hash, args->argv[i]);
+ }
}
/*
{"--save-temps", TOO_HARD},
{"--serialize-diagnostics", TAKES_ARG | TAKES_PATH},
{"-A", TAKES_ARG},
+ {"-B", TAKES_ARG | TAKES_CONCAT_ARG},
{"-D", AFFECTS_CPP | TAKES_ARG | TAKES_CONCAT_ARG},
{"-E", TOO_HARD},
{"-F", AFFECTS_CPP | TAKES_ARG | TAKES_CONCAT_ARG | TAKES_PATH},
else
test_failed "unexpected output of --dump-manifest"
fi
+
+ ##################################################################
+ testname="argument-less -B and -L"
+ $CCACHE -Cz > /dev/null
+ cat <<EOF >test.c
+#include <stdio.h>
+int main(void)
+{
+#ifdef FOO
+ puts("FOO");
+#endif
+ return 0;
+}
+EOF
+
+ $CCACHE $COMPILER -A -L -DFOO -c test.c
+ checkstat 'cache hit (direct)' 0
+ checkstat 'cache miss' 1
+ $CCACHE $COMPILER -A -L -DBAR -c test.c
+ checkstat 'cache hit (direct)' 0
+ checkstat 'cache miss' 2
}
basedir_suite() {