diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2004-03-19 14:34:47 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2004-03-19 09:34:47 -0500 |
commit | 7548281d739c119cf7dfc9c83bc52dfc36083f8c (patch) | |
tree | 046f6fd5dcc59b0ff82a69550dd6265483af9478 /gcc/ada | |
parent | 32f4f7197f9c12930a4933fc92215fcc45af670f (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/decl.c | 9 | ||||
-rw-r--r-- | gcc/ada/misc.c | 6 |
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 |