Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get gcc to skip errors, but still output them.

is it possible to force gcc to report errors, but keep compiling past them? Essentially I'm trying to generate a list of errors in a .c file, but gcc always terminates at the first error. I've been googling for a while and this isn't an obvious one to solve from what I can tell.

like image 665
chrisvarnz Avatar asked Jul 28 '11 14:07

chrisvarnz


2 Answers

GCC terminates when it can't go further.

If a compiler encounters an error, it has to guess what the correct code should be and try to follow. Effectively that means that you always need to fix the first error and re-run the compilations, since the rest will be nonsense.

Make sure that you haven't turned -Wfatal-errors on.

like image 116
Šimon Tóth Avatar answered Nov 07 '22 11:11

Šimon Tóth


Up-to-date versions of GCC will attempt to skip certain errors where possible.

Say the body of foo(){... contains a const-violation. The translation unit will not produce an object file but any decent compiler will continue past this error into bar(){...

Other errors are unrecoverable. If you miss out some curly braces there's no reasonable guess that can be mades as to how to proceed.

like image 35
spraff Avatar answered Nov 07 '22 11:11

spraff