This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

improvements to abort()



I've changed our magic abort() so that it goes through fatal() and
therefore reports the function, file, and line that triggered the
internal error.  Instead of

../../../egcs/gcc/cse.c:7572: Internal compiler error in function cse_insn

we get

selector.c: In function `__sel_register_typed_name':
selector.c:428: Internal compiler error at ../../../egcs/gcc/cse.c:7572 (cse_insn)

(with the usual stuff about reporting the bug afterward, of course).
This saves you having to run cc -Q to find where it blew up.  I also
modified fatal_insn and fatal_insn_not_found so that the error message
printed names the function that called them, e.g.

test.c: In function `main':
test.c:1: internal error--unrecognizable insn:
(note 2 0 3 "" NOTE_INSN_DELETED)
test.c:1: Internal compiler error at toplev.c:3572 (rest_of_compilation)

The patch resurrects fancy_abort rather than add more gunk to
system.h, and therefore touches a lot of different files.

What do people think of a __BASE_FILE__ magic macro that is __FILE__
with leading directories trimmed off?  (so in the above, you'd have
"Internal compiler error at cse.c:7572" instead)

zw

1999-04-04 21:26 -0400  Zack Weinberg  <zack@rabi.columbia.edu>

	* toplev.c (fancy_abort): Take three arguments: `file',
	`line', and `func'.  Call fatal with a format string including
	these.
	(fatal_insn): Renamed to _fatal_insn.  Take three additional
	args: `file', `line', and `func'.  Call fancy_abort not abort.
	(fatal_insn_not_found): Renamed to _fatal_insn_not_found, and
	modified the same way as fatal_insn.
	(botch): Removed.

	* toplev.h: Change prototypes to match.  #define fatal_insn
	and fatal_insn_not_found to call their underscored
	counterparts with __FILE__, __LINE__, and __PRETTY_FUNCTION__
	(if available) added to arglist.  Remove prototypes of
	fancy_abort and botch.
	* system.h: Prototype fancy_abort here.  Make abort() call
	fancy_abort, with __FILE__, __LINE__, and __PRETTY_FUNCTION__,
	unless USE_SYSTEM_ABORT is defined.

	* cccp.c, cppmain.c, fix-header.c, gcc.c, gcov.c,
	gen-protos.c, genattr.c, genattrtab.c, gencodes.c,
	genconfig.c, genemit.c, genextract.c, genflags.c, gengenrtl.c,
	genopinit.c, genoutput.c, genpeep.c, genrecog.c, protoize.c: 
	Change definition of fancy_abort to match the one in toplev.h.
	Remove prototype if present.

	* mips-tdump.c, mips-tfile.c: Remove unnecessary definitions
	of fancy_abort and botch.

begin 664 fancy-abort.diff.gz
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
DJ(K7.91&./[A_9N+XW]FNZ-RM:9:+9-&3)__#\MW(BX?;0``
`
end


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]