summaryrefslogtreecommitdiff
path: root/gcc/ada/gigi.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/gigi.h')
-rw-r--r--gcc/ada/gigi.h47
1 files changed, 19 insertions, 28 deletions
diff --git a/gcc/ada/gigi.h b/gcc/ada/gigi.h
index 15d3b65871f..7c8541a8184 100644
--- a/gcc/ada/gigi.h
+++ b/gcc/ada/gigi.h
@@ -6,9 +6,9 @@
* *
* C Header File *
* *
- * $Revision: 1.2 $
+ * $Revision$
* *
- * Copyright (C) 1992-2001 Free Software Foundation, Inc. *
+ * Copyright (C) 1992-2002 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- *
@@ -60,18 +60,15 @@ extern void update_setjmp_buf PARAMS ((tree));
default. */
extern int default_pass_by_ref PARAMS ((tree));
-/* GNU_TYPE is the type of a subprogram parameter. Determine from the type if
- it should be passed by reference. */
+/* GNU_TYPE is the type of a subprogram parameter. Determine from the type
+ if it should be passed by reference. */
extern int must_pass_by_ref PARAMS ((tree));
-/* Elaboration routines for the front end */
-extern void elab_all_gnat PARAMS ((void));
+/* This function returns the version of GCC being used. Here it's GCC 3. */
+extern int gcc_version PARAMS ((void));
-/* Emit a label UNITNAME_LABEL and specify that it is part of source
- file FILENAME. If this is being written for SGI's Workshop
- debugger, and we are writing Dwarf2 debugging information, add
- additional debug info. */
-extern void emit_unit_label PARAMS ((char *, char *));
+/* Elaboration routines for the front end. */
+extern void elab_all_gnat PARAMS ((void));
/* Initialize DUMMY_NODE_TABLE. */
extern void init_dummy_type PARAMS ((void));
@@ -235,9 +232,8 @@ extern void post_error_ne_tree_2 PARAMS ((const char *, Node_Id, Entity_Id,
/* Set the node for a second '&' in the error message. */
extern void set_second_error_entity PARAMS ((Entity_Id));
-/* Surround EXP with a SAVE_EXPR, but handle unconstrained objects specially
- since it doesn't make any sense to put them in a SAVE_EXPR. */
-extern tree make_save_expr PARAMS ((tree));
+/* Protect EXP from multiple evaluation. This may make a SAVE_EXPR. */
+extern tree protect_multiple_eval PARAMS ((tree));
/* Signal abort, with "Gigi abort" as the error label, and error_gnat_node
as the relevant node that provides the location info for the error.
@@ -355,12 +351,10 @@ enum standard_datatypes
ADT_setjmp_decl,
ADT_longjmp_decl,
ADT_raise_nodefer_decl,
- ADT_raise_constraint_error_decl,
- ADT_raise_program_error_decl,
- ADT_raise_storage_error_decl,
ADT_LAST};
extern tree gnat_std_decls[(int) ADT_LAST];
+extern tree gnat_raise_decls[(int) LAST_REASON_CODE + 1];
#define longest_float_type_node gnat_std_decls[(int) ADT_longest_float_type]
#define void_type_decl_node gnat_std_decls[(int) ADT_void_type_decl]
@@ -378,12 +372,6 @@ extern tree gnat_std_decls[(int) ADT_LAST];
#define setjmp_decl gnat_std_decls[(int) ADT_setjmp_decl]
#define longjmp_decl gnat_std_decls[(int) ADT_longjmp_decl]
#define raise_nodefer_decl gnat_std_decls[(int) ADT_raise_nodefer_decl]
-#define raise_constraint_error_decl \
- gnat_std_decls[(int) ADT_raise_constraint_error_decl]
-#define raise_program_error_decl \
- gnat_std_decls[(int) ADT_raise_program_error_decl]
-#define raise_storage_error_decl \
- gnat_std_decls[(int) ADT_raise_storage_error_decl]
/* Routines expected by the gcc back-end. They must have exactly the same
prototype and names as below. */
@@ -435,6 +423,7 @@ extern tree pushdecl PARAMS ((tree));
in the gcc back-end and initialize the global binding level. */
extern void gnat_init_decl_processing PARAMS ((void));
extern void init_gigi_decls PARAMS ((tree, tree));
+extern void gnat_init_gcc_eh PARAMS ((void));
/* Return an integer type with the number of bits of precision given by
PRECISION. UNSIGNEDP is nonzero if the type is unsigned; otherwise
@@ -645,8 +634,10 @@ extern void update_pointer_to PARAMS ((tree, tree));
extern tree max_size PARAMS ((tree, int));
/* Remove all conversions that are done in EXP. This includes converting
- from a padded type or converting to a left-justified modular type. */
-extern tree remove_conversions PARAMS ((tree));
+ from a padded type or to a left-justified modular type. If TRUE_ADDRESS
+ is nonzero, always return the address of the containing object even if
+ the address is not bit-aligned. */
+extern tree remove_conversions PARAMS ((tree, int));
/* If EXP's type is an UNCONSTRAINED_ARRAY_TYPE, return an expression that
refers to the underlying array. If its type has TYPE_CONTAINS_TEMPLATE_P,
@@ -705,9 +696,9 @@ extern tree build_call_2_expr PARAMS((tree, tree, tree));
/* Likewise to call FUNDECL with no arguments. */
extern tree build_call_0_expr PARAMS((tree));
-/* Call a function FCN that raises an exception and pass the line
- number and file name, if requested. */
-extern tree build_call_raise PARAMS((tree));
+/* Call a function that raises an exception and pass the line number and file
+ name, if requested. MSG says which exception function to call. */
+extern tree build_call_raise PARAMS((int));
/* Return a CONSTRUCTOR of TYPE whose list is LIST. */
extern tree build_constructor PARAMS((tree, tree));