aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2004-03-19 14:34:47 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2004-03-19 09:34:47 -0500
commit7548281d739c119cf7dfc9c83bc52dfc36083f8c (patch)
tree046f6fd5dcc59b0ff82a69550dd6265483af9478 /gcc/ada
parent32f4f7197f9c12930a4933fc92215fcc45af670f (diff)
downloadgcc-7548281d739c119cf7dfc9c83bc52dfc36083f8c.zip
gcc-7548281d739c119cf7dfc9c83bc52dfc36083f8c.tar.gz
gcc-7548281d739c119cf7dfc9c83bc52dfc36083f8c.tar.bz2
langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
* langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook. * langhooks.h (struct lang_hooks_for_types): New field hash_types. * tree.c (debug_no_type_hash): Deleted. (type_hash_canon): Abort if passed a variant. Check lang_hooks.types.hash_types. (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE. (build_array_type): Remove unnecessary allocation of pointer type. (build_complex_type): Properly qualify resulting type. * ada/decl.c (debug_no_type_hash): Remove. (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it. * ada/misc.c (LANG_HOOK_HASH_TYPE): Redefine. From-SVN: r79684
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/decl.c9
-rw-r--r--gcc/ada/misc.c6
3 files changed, 10 insertions, 11 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 7b33fc9..c9f7e54 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * decl.c (debug_no_type_hash): Remove.
+ (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
+ * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
+
2004-03-19 Laurent GUERBY <laurent@guerby.net>
* sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
diff --git a/gcc/ada/decl.c b/gcc/ada/decl.c
index 1ca2304..9e7749e 100644
--- a/gcc/ada/decl.c
+++ b/gcc/ada/decl.c
@@ -52,9 +52,6 @@
#include "ada-tree.h"
#include "gigi.h"
-/* Setting this to 1 suppresses hashing of types. */
-extern int debug_no_type_hash;
-
/* Provide default values for the macros controlling stack checking.
This is copied from GCC's expr.h. */
@@ -1942,11 +1939,6 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
convert (bitsizetype, gnu_max_size),
TYPE_SIZE (gnu_type));
- /* We don't want any array types shared for two reasons: first,
- we want to keep differently-named types distinct; second,
- setting TYPE_MULTI_ARRAY_TYPE of one type can clobber
- another. */
- debug_no_type_hash = 1;
for (index = array_dim - 1; index >= 0; index --)
{
gnu_type = build_array_type (gnu_type, gnu_index_type[index]);
@@ -2019,7 +2011,6 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
finish_record_type (gnu_bound_rec_type, gnu_field_list, 0, 0);
}
- debug_no_type_hash = 0;
TYPE_CONVENTION_FORTRAN_P (gnu_type)
= (Convention (gnat_entity) == Convention_Fortran);
TYPE_PACKED_ARRAY_TYPE_P (gnu_type)
diff --git a/gcc/ada/misc.c b/gcc/ada/misc.c
index a87331d..7be3b5d 100644
--- a/gcc/ada/misc.c
+++ b/gcc/ada/misc.c
@@ -101,7 +101,7 @@ static rtx gnat_expand_expr (tree, rtx, enum machine_mode, int,
static void internal_error_function (const char *, va_list *);
static void gnat_adjust_rli (record_layout_info);
-/* Structure giving our language-specific hooks. */
+/* Definitions for our language-specific hooks. */
#undef LANG_HOOKS_NAME
#define LANG_HOOKS_NAME "GNU Ada"
@@ -118,7 +118,9 @@ static void gnat_adjust_rli (record_layout_info);
#undef LANG_HOOKS_PARSE_FILE
#define LANG_HOOKS_PARSE_FILE gnat_parse_file
#undef LANG_HOOKS_HONOR_READONLY
-#define LANG_HOOKS_HONOR_READONLY 1
+#define LANG_HOOKS_HONOR_READONLY true
+#undef LANG_HOOKS_HASH_TYPES
+#define LANG_HOOKS_HASH_TYPES false
#undef LANG_HOOKS_FINISH_INCOMPLETE_DECL
#define LANG_HOOKS_FINISH_INCOMPLETE_DECL gnat_finish_incomplete_decl
#undef LANG_HOOKS_GET_ALIAS_SET