This is why compilers for e.g. c++ should just halt after the first error, instead of spewing pages of template failures because of a typo elsewhere
But like I said, I am not much of a C programmer. The compiler authors feel strongly about pushing past all possible errors and keep doing it so perhaps there is merit to this practice. but it bugs the heck out of me.
A year or two ago Visual Studio added a pop-up that parses such lengthy compiler messages into a clickable tree list. I found it annoying at first, until I discovered I could dock it to the side, ignore it 98% of the time, but still go look at the details when relevant. This is an idea other compilers should copy.
Maybe ships should copy this approach too: issue fewer warnings, but provide a list of warning details for review when necessary.