Hi! Ping.
Grüße Thomas On 2022-05-10T16:03:12+0200, I wrote: > Hi! > > On 2022-05-03T15:46:43+0200, Richard Biener <richard.guent...@gmail.com> > wrote: >> On Tue, May 3, 2022 at 2:29 PM Thomas Schwinge <tho...@codesourcery.com> >> wrote: >>> On 2022-05-03T12:53:50+0200, Richard Biener <richard.guent...@gmail.com> >>> wrote: >>> > On Tue, May 3, 2022 at 10:16 AM Thomas Schwinge <tho...@codesourcery.com> >>> > wrote: >>> >> On 2022-05-03T09:17:52+0200, Richard Biener <richard.guent...@gmail.com> >>> >> wrote: >>> >> > On Mon, May 2, 2022 at 4:01 PM Thomas Schwinge >>> >> > <tho...@codesourcery.com> wrote: >>> >> > +#if 0 >>> >> > gcc_unreachable (); >>> >> > +#else >>> >> > + /* ..., but due to bugs (PR100400), we may actually come here. >>> >> > + Reliably catch this, regardless of checking level. */ >>> >> > + abort (); >>> >> > +#endif >>> >> > >>> >> > this doesn't look correct. If you want a reliable diagnostic here >>> >> > please [...] >>> >> > call internal_error () manually (the IL verifiers do this). >>> >> >>> >> Hmm, I feel I'm going in circles... ;-) > >>> >> I first had this as 'internal_error', but then saw the following source >>> >> code comment, 'gcc/diagnostic.cc': >>> >> >>> >> /* An internal consistency check has failed. We make no attempt to >>> >> continue. Note that unless there is debugging value to be had >>> >> from >>> >> a more specific message, or some other good reason, you should use >>> >> abort () instead of calling this function directly. */ >>> >> void >>> >> internal_error (const char *gmsgid, ...) >>> >> { >>> >> >>> >> Here, there's no "debugging value to be had from a more specific >>> >> message", and I couldn't think of "some other good reason", so decided to >>> >> "use abort () instead of calling this function directly". >>> > >>> > I think that is misguided. >>> >>> So that I know which one to fix/reconsider: does your "that" refer to the >>> 'gcc/diagnostic.cc:internal_error' source code comment cited above, or my >>> interpretation of it? >> >> The comment to "use abort ()". > > Does the attached > "Advise to call 'internal_error' instead of 'abort' or 'fancy_abort'" > capture what you had in mind? > > (This is, obviously, not updating any of the many 'abort' or even a few > 'fancy_abort' calls that we currently have.) > > > Grüße > Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
>From a8017c7b5fa7b5e8210b6446acf7dd09989a7517 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tho...@codesourcery.com> Date: Tue, 10 May 2022 15:56:08 +0200 Subject: [PATCH] Advise to call 'internal_error' instead of 'abort' or 'fancy_abort' gcc/ * diagnostic.cc: Don't advise to call 'abort' instead of 'internal_error'. * system.h: Advise to call 'internal_error' instead of 'abort' or 'fancy_abort'. Suggested-by: Richard Biener <richard.guent...@gmail.com> --- gcc/diagnostic.cc | 4 +--- gcc/system.h | 6 ++++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gcc/diagnostic.cc b/gcc/diagnostic.cc index 73324a728fe..fef11467b6f 100644 --- a/gcc/diagnostic.cc +++ b/gcc/diagnostic.cc @@ -1935,9 +1935,7 @@ fatal_error (location_t loc, const char *gmsgid, ...) } /* An internal consistency check has failed. We make no attempt to - continue. Note that unless there is debugging value to be had from - a more specific message, or some other good reason, you should use - abort () instead of calling this function directly. */ + continue. */ void internal_error (const char *gmsgid, ...) { diff --git a/gcc/system.h b/gcc/system.h index c25cd64366f..187763efcd6 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -770,8 +770,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list); #endif #endif -/* Redefine abort to report an internal error w/o coredump, and - reporting the location of the error in the source file. */ +/* Redefine 'abort' to report an internal error w/o coredump, and + reporting the location of the error in the source file. + Instead of directly calling 'abort' or 'fancy_abort', GCC code + should normally call 'internal_error' with a specific message. */ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN ATTRIBUTE_COLD; #define abort() fancy_abort (__FILE__, __LINE__, __FUNCTION__) -- 2.25.1