Using gcc as a preprocesser

Using the intermediate output option from gcc to dump the preprocessed files.

This causes some problems as there are lots of internal tweaks and hacks that
fall out of the system headers. These have several attributes and flags that
do not parse as C...