Modern versions of GCC will try to skip some errors where possible.
Let's say that the body foo(){... contains a const violation. The translation unit will not create an object file, but any worthy compiler will continue this error in bar(){...
Other errors cannot be recovered. If you miss any braces, there is no reasonable assumption that you can decide how to proceed.
source share