Message ID | 518a8939-5b1a-6717-6a11-ca2ce73ff5fa@suse.cz |
---|---|
State | New |
Headers | show |
Series | diagnostics: ignore -fmax-errors for ICE | expand |
On 12/1/20 9:35 AM, Martin Liška wrote: > Right now I see: > > ./xgcc -B. ~/Programming/testcases/json.i -c -O2 -fmax-errors=1 > /home/marxin/Programming/testcases/json.i: In function > ‘json_variant_type’: > /home/marxin/Programming/testcases/json.i:22:1: error: non-integral > type switch statement > 22 | } > | ^ > int * > switch (v_2(D)) <default: <L16> [INV], case 0B: <L11> [INV], case 5B: > <L12> [INV], case 6B: <L13> [INV], case 7B: <L14> [INV], case 8B: > <L15> [INV]> > compilation terminated due to -fmax-errors=1. > > with the patch I get: > > ./xgcc -B. ~/Programming/testcases/json.i -c -O2 -fmax-errors=1 -c > /home/marxin/Programming/testcases/json.i: In function > ‘json_variant_type’: > /home/marxin/Programming/testcases/json.i:22:1: error: non-integral > type switch statement > 22 | } > | ^ > int * > switch (v_2(D)) <default: <L16> [INV], case 0B: <L11> [INV], case 5B: > <L12> [INV], case 6B: <L13> [INV], case 7B: <L14> [INV], case 8B: > <L15> [INV]> > during GIMPLE pass: iftoswitch > /home/marxin/Programming/testcases/json.i:22:1: internal compiler > error: verify_gimple failed > 0xe4478c verify_gimple_in_cfg(function*, bool) > /home/marxin/Programming/gcc/gcc/tree-cfg.c:5467 > 0xd201cf execute_function_todo > /home/marxin/Programming/gcc/gcc/passes.c:2042 > 0xd2101c do_per_function > /home/marxin/Programming/gcc/gcc/passes.c:1687 > 0xd2101c execute_todo > /home/marxin/Programming/gcc/gcc/passes.c:2096 > Please submit a full bug report, > with preprocessed source if appropriate. > Please include the complete backtrace with any bug report. > See <https://gcc.gnu.org/bugs/> for instructions. > > gcc/ChangeLog: > > * diagnostic.c (diagnostic_report_diagnostic): ICE causes to > terminate compiler immediately, so I guess it should be printed > always. OK jeff
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index fe509d88e6d..da20cdb2703 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -1172,7 +1172,7 @@ diagnostic_report_diagnostic (diagnostic_context *context, return false; } - if (diagnostic->kind != DK_NOTE) + if (diagnostic->kind != DK_NOTE && diagnostic->kind != DK_ICE) diagnostic_check_max_errors (context); context->lock++;