diff -urpN src/gdb/ada-lang.c dev/gdb/ada-lang.c --- src/gdb/ada-lang.c 2007-09-23 18:25:03.000000000 +0200 +++ dev/gdb/ada-lang.c 2007-10-11 09:26:16.000000000 +0200 @@ -10203,7 +10203,7 @@ ada_create_fundamental_type (struct objf name "". When all the dust settles from the type reconstruction work, this should probably become an error. */ type = init_type (TYPE_CODE_INT, - gdbarch_int_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_int_bit (objfile->gdbarch) / TARGET_CHAR_BIT, 0, "", objfile); warning (_("internal error: no Ada fundamental type %d"), typeid); break; @@ -10229,80 +10229,80 @@ ada_create_fundamental_type (struct objf break; case FT_SHORT: type = init_type (TYPE_CODE_INT, - gdbarch_short_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_short_bit (objfile->gdbarch) / TARGET_CHAR_BIT, 0, "short_integer", objfile); break; case FT_SIGNED_SHORT: type = init_type (TYPE_CODE_INT, - gdbarch_short_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_short_bit (objfile->gdbarch) / TARGET_CHAR_BIT, 0, "short_integer", objfile); break; case FT_UNSIGNED_SHORT: type = init_type (TYPE_CODE_INT, - gdbarch_short_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_short_bit (objfile->gdbarch) / TARGET_CHAR_BIT, TYPE_FLAG_UNSIGNED, "unsigned short", objfile); break; case FT_INTEGER: type = init_type (TYPE_CODE_INT, - gdbarch_int_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_int_bit (objfile->gdbarch) / TARGET_CHAR_BIT, 0, "integer", objfile); break; case FT_SIGNED_INTEGER: type = init_type (TYPE_CODE_INT, - gdbarch_int_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_int_bit (objfile->gdbarch) / TARGET_CHAR_BIT, 0, "integer", objfile); /* FIXME -fnf */ break; case FT_UNSIGNED_INTEGER: type = init_type (TYPE_CODE_INT, - gdbarch_int_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_int_bit (objfile->gdbarch) / TARGET_CHAR_BIT, TYPE_FLAG_UNSIGNED, "unsigned int", objfile); break; case FT_LONG: type = init_type (TYPE_CODE_INT, - gdbarch_long_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_long_bit (objfile->gdbarch) / TARGET_CHAR_BIT, 0, "long_integer", objfile); break; case FT_SIGNED_LONG: type = init_type (TYPE_CODE_INT, - gdbarch_long_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_long_bit (objfile->gdbarch) / TARGET_CHAR_BIT, 0, "long_integer", objfile); break; case FT_UNSIGNED_LONG: type = init_type (TYPE_CODE_INT, - gdbarch_long_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_long_bit (objfile->gdbarch) / TARGET_CHAR_BIT, TYPE_FLAG_UNSIGNED, "unsigned long", objfile); break; case FT_LONG_LONG: type = init_type (TYPE_CODE_INT, - gdbarch_long_long_bit (current_gdbarch) + gdbarch_long_long_bit (objfile->gdbarch) / TARGET_CHAR_BIT, 0, "long_long_integer", objfile); break; case FT_SIGNED_LONG_LONG: type = init_type (TYPE_CODE_INT, - gdbarch_long_long_bit (current_gdbarch) + gdbarch_long_long_bit (objfile->gdbarch) / TARGET_CHAR_BIT, 0, "long_long_integer", objfile); break; case FT_UNSIGNED_LONG_LONG: type = init_type (TYPE_CODE_INT, - gdbarch_long_long_bit (current_gdbarch) + gdbarch_long_long_bit (objfile->gdbarch) / TARGET_CHAR_BIT, TYPE_FLAG_UNSIGNED, "unsigned long long", objfile); break; case FT_FLOAT: type = init_type (TYPE_CODE_FLT, - gdbarch_float_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_float_bit (objfile->gdbarch) / TARGET_CHAR_BIT, 0, "float", objfile); break; case FT_DBL_PREC_FLOAT: type = init_type (TYPE_CODE_FLT, - gdbarch_double_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_double_bit (objfile->gdbarch) / TARGET_CHAR_BIT, 0, "long_float", objfile); break; case FT_EXT_PREC_FLOAT: type = init_type (TYPE_CODE_FLT, - gdbarch_long_double_bit (current_gdbarch) + gdbarch_long_double_bit (objfile->gdbarch) / TARGET_CHAR_BIT, 0, "long_long_float", objfile); break; @@ -10327,24 +10327,24 @@ enum ada_primitive_types { }; static void -ada_language_arch_info (struct gdbarch *current_gdbarch, +ada_language_arch_info (struct gdbarch *gdbarch, struct language_arch_info *lai) { - const struct builtin_type *builtin = builtin_type (current_gdbarch); + const struct builtin_type *builtin = builtin_type (gdbarch); lai->primitive_type_vector - = GDBARCH_OBSTACK_CALLOC (current_gdbarch, nr_ada_primitive_types + 1, + = GDBARCH_OBSTACK_CALLOC (gdbarch, nr_ada_primitive_types + 1, struct type *); lai->primitive_type_vector [ada_primitive_type_int] = init_type (TYPE_CODE_INT, - gdbarch_int_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT, 0, "integer", (struct objfile *) NULL); lai->primitive_type_vector [ada_primitive_type_long] = init_type (TYPE_CODE_INT, - gdbarch_long_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT, 0, "long_integer", (struct objfile *) NULL); lai->primitive_type_vector [ada_primitive_type_short] = init_type (TYPE_CODE_INT, - gdbarch_short_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_short_bit (gdbarch) / TARGET_CHAR_BIT, 0, "short_integer", (struct objfile *) NULL); lai->string_char_type = lai->primitive_type_vector [ada_primitive_type_char] = @@ -10352,27 +10352,27 @@ ada_language_arch_info (struct gdbarch * 0, "character", (struct objfile *) NULL); lai->primitive_type_vector [ada_primitive_type_float] = init_type (TYPE_CODE_FLT, - gdbarch_float_bit (current_gdbarch)/ TARGET_CHAR_BIT, + gdbarch_float_bit (gdbarch)/ TARGET_CHAR_BIT, 0, "float", (struct objfile *) NULL); lai->primitive_type_vector [ada_primitive_type_double] = init_type (TYPE_CODE_FLT, - gdbarch_double_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_double_bit (gdbarch) / TARGET_CHAR_BIT, 0, "long_float", (struct objfile *) NULL); lai->primitive_type_vector [ada_primitive_type_long_long] = init_type (TYPE_CODE_INT, - gdbarch_long_long_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_long_long_bit (gdbarch) / TARGET_CHAR_BIT, 0, "long_long_integer", (struct objfile *) NULL); lai->primitive_type_vector [ada_primitive_type_long_double] = init_type (TYPE_CODE_FLT, - gdbarch_double_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_double_bit (gdbarch) / TARGET_CHAR_BIT, 0, "long_long_float", (struct objfile *) NULL); lai->primitive_type_vector [ada_primitive_type_natural] = init_type (TYPE_CODE_INT, - gdbarch_int_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT, 0, "natural", (struct objfile *) NULL); lai->primitive_type_vector [ada_primitive_type_positive] = init_type (TYPE_CODE_INT, - gdbarch_int_bit (current_gdbarch) / TARGET_CHAR_BIT, + gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT, 0, "positive", (struct objfile *) NULL); lai->primitive_type_vector [ada_primitive_type_void] = builtin->builtin_void;