I have a number of debug statements defined in a program, and I want to be able to make a copy of the source without these statements.
In order to do this I first lo
If -E is not helping, then try using -fdump-tree-all and if you don't see what you want the that is not-available-in (or) not-provided-by GCC.
OTOH, this question has been discussed in SO as follows, please refer the below to get some ideas.
Hope it helps!
Hi Mat,
I saw your comment to @nos. But I have one such script handy and so sharing it with you. You can try reading my answer for a similar question here
Copy the below code in a file, say convert.sh. Assign execute permission to that file, chmod +x convert.sh and run it as follows:
$./convert.sh .c
$cat filename.c.done
The will have what you need!
#!/bin/bash
if [[ $# -ne 1 || ! -f $1 ]] ; then
echo "Invalid args / Check file "
exit
fi
file_name=$1
grep '^\s*#\s*include' $file_name > /tmp/include.c
grep -Pv '^\s*#\s*include\b' $file_name > /tmp/code.c
gcc -E /tmp/code.c | grep -v ^# > /tmp/preprocessed.c
cat /tmp/include.c > $file_name.done
cat /tmp/preprocessed.c >> $file_name.done
Hope this helps!