Testing removal of ifdef or configure checks
#ifdef removal is risky
Large-scale removal of "unused" ifdef or the configure checks that produce #defines is an important, but risky task.
It is difficult (and time consuming) to prove that the code is unused and that there is no change to the compiled output.
A script to help obtain CPP output
Getting the results
git checkout origin/master git clean -x -f -d CC="gcc -E" ./configure.developer && make -j mv bin /tmp/master-bin git checkout newbranch git clean -x -f -d CC="gcc -E" ./configure.developer && make -j
Reading the results
dirdiff /tmp/master-bin bin
diff -ur --ignore-matching-lines="^#" /tmp/master-bin/ bin> /tmp/diff
Getting just one file's CPP output
Thanks to waf author Thomas Nagy
WAF_CMD_FORMAT=string PYTHONHASHSEED=1 WAF_MAKE=1 ./buildtools/bin/waf -v build
Then just edit the command to add the -E (and perhaps a new output file).