-- --
-- S p e c --
-- --
--- --
--- Copyright (C) 1992-2000 Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2007, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
--- ware Foundation; either version 2, or (at your option) any later ver- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
-- for more details. You should have received a copy of the GNU General --
--- Public License distributed with GNAT; see file COPYING. If not, write --
--- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
--- MA 02111-1307, USA. --
+-- Public License distributed with GNAT; see file COPYING3. If not, go to --
+-- http://www.gnu.org/licenses for a complete copy of the license. --
-- --
-- GNAT was originally developed by the GNAT team at New York University. --
--- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
-- --
------------------------------------------------------------------------------
package Comperr is
procedure Compiler_Abort
- (X : String;
- Code : Integer := 0);
- -- Signals an internal compiler error. Never returns control. Depending
- -- on processing may end up raising Unrecoverable_Error, or exiting
- -- directly. The message output is a "bug box" containing the
- -- string passed as an argument. The node in Current_Error_Node is used
- -- to provide the location where the error should be signalled. The
- -- message includes the node id, and the code parameter if it is positive.
+ (X : String;
+ Code : Integer := 0;
+ Fallback_Loc : String := "");
+ -- Signals an internal compiler error. Never returns control. Depending on
+ -- processing may end up raising Unrecoverable_Error, or exiting directly.
+ -- The message output is a "bug box" containing the first string passed as
+ -- an argument. The Sloc field of the node in Current_Error_Node is used to
+ -- provide the location where the error should be signalled. If this Sloc
+ -- value is set to No_Location or any of the other special location values,
+ -- then the Fallback_Loc argument string is used instead. The message text
+ -- includes the node id, and the code parameter if it is positive.
+ --
-- Note that this is only used at the outer level (to handle constraint
-- errors or assert errors etc.) In the normal logic of the compiler we
-- always use pragma Assert to check for errors, and if necessary an
-- When comperr generates the "bug box". The first two lines contain
-- information on the version number, type of abort, and source location.
- -- Normally the remaining text is one of the following two forms
- -- depending on the version number (p identifies public versions):
-
- -- Please submit bug report by email to report@gnat.com.
- -- Use a subject line meaningful to you and us to track the bug.
- -- (include your customer number #nnn in the subject line).
- -- Include the entire contents of this bug box in the report.
- -- Include the exact gcc or gnatmake command that you entered.
- -- Also include sources listed below in gnatchop format
- -- (concatenated together with no headers between files).
- -- (use plain ASCII or MIME attachment,
- -- or FTP to your customer directory).
- -- See README.GNATPRO for full info on procedure for submitting bugs.
-
- -- or (public version case)
-
- -- Please submit bug report by email to report@gnat.com.
- -- Use a subject line meaningful to you and us to track the bug.
- -- (include your customer number #nnn in the subject line).
- -- Include the entire contents of this bug box in the report.
- -- Include the exact gcc or gnatmake command that you entered.
- -- Also include sources listed below in gnatchop format
- -- (concatenated together with no headers between files).
- -- See gnatinfo.txt for full info on procedure for submitting bugs.
+ -- Normally the remaining text is one of three possible forms
+ -- depending on Gnatvsn.Gnat_Version_Type (FSF, Public, GNATPRO).
+ -- See body of this package for the exact text used.
- -- However, an alternative mechanism exists for easily substituting
+ -- In addition, an alternative mechanism exists for easily substituting
-- different text for this message. Compiler_Abort checks for the
-- existence of the file "gnat_bug.box" in the current source path.
-- Most typically this file, if present, will be in the directory
-- containing the run-time sources.
- -- If this file is present, then it is a plain ASCII file, whose
- -- contents replace the above quoted paragraphs. The lines in this
- -- file should be 72 characters or less to avoid misformatting the
- -- right boundary of the box. Note that the file does not contain
- -- the vertical bar characters or any leading spaces in lines.
+ -- If this file is present, then it is a plain ASCII file, whose contents
+ -- replace the remaining text. The lines in this file should be seventy-two
+ -- characters or less to avoid misformatting the right boundary of the box.
+ -- Note that the file does not contain the vertical bar characters or any
+ -- leading spaces in lines.
end Comperr;