GCC Wikia
Advertisement

このページを編集する際は,編集に関する方針に従ってください.[]

概要[]

引数[]

実装[]

 226 /* Take any action which is expected to happen after the diagnostic
 227    is written out.  This function does not always return.  */
228 static void
229 diagnostic_action_after_output (diagnostic_context *context,
230                                 diagnostic_info *diagnostic)
231 {
232   switch (diagnostic->kind)
233     {
 終了しないのは以下の4つの診断の場合
234     case DK_DEBUG:
235     case DK_NOTE:
236     case DK_ANACHRONISM:
237     case DK_WARNING:
238       break;
239 
~
240     case DK_ERROR:
241     case DK_SORRY:
242       if (context->abort_on_error)
243         real_abort ();
 flag_fatal_errorsは2004年のChangelogには定義されてないとか書いてある
244       if (flag_fatal_errors)
245         {
246           fnotice (stderr, "compilation terminated due to -Wfatal-errors.\n");
247           exit (FATAL_EXIT_CODE);
248         }
249       break;
250 
~
251     case DK_ICE:
252       if (context->abort_on_error)
253         real_abort ();
254 
255       fnotice (stderr, "Please submit a full bug report,\n"
256                "with preprocessed source if appropriate.\n"
257                "See %s for instructions.\n", bug_report_url);
258       exit (FATAL_EXIT_CODE);
259 
~
260     case DK_FATAL:
261       if (context->abort_on_error)
262         real_abort ();
263 
264       fnotice (stderr, "compilation terminated.\n");
265       exit (FATAL_EXIT_CODE);
266 
~
267     default:
268       gcc_unreachable ();
269     }
270 }


リンク元

Advertisement