Renamed two comparison structs.

The project had structs elsewhere with the same name. This led to linker
confusion and a few subtle bugs.
Merged the GCC compatibility branch into the master branch.