I thought of a smaller suggestion, compiler warnings for assignments in if statements. Basically, warn of a single equal sign (assignment operator) exists by itself anywhere inside of an if statement. I experimented and Pelles C offers no warning for this.
The warnings that exist in for this Code::Blocks have saved me a bunch of troubleshooting at least once. lol