Love 'em or hate 'em, header guards are in frequent use in C/C++ code.
We had the problem where it can allow for some sloppy conventions where a header is included in both the .h and .cpp files, and in some extreme cases, included twice in a single file.
I wrote a quickie Perl script that dumps files with these situations to stdout. You pass in the path to the source tree root you want to fix.