| OLD | NEW |
| 1 /* Ada language support routines for GDB, the GNU debugger. | 1 /* Ada language support routines for GDB, the GNU debugger. |
| 2 | 2 |
| 3 Copyright (C) 1992-1994, 1997-2000, 2003-2005, 2007-2012 Free | 3 Copyright (C) 1992-2013 Free Software Foundation, Inc. |
| 4 Software Foundation, Inc. | |
| 5 | 4 |
| 6 This file is part of GDB. | 5 This file is part of GDB. |
| 7 | 6 |
| 8 This program is free software; you can redistribute it and/or modify | 7 This program is free software; you can redistribute it and/or modify |
| 9 it under the terms of the GNU General Public License as published by | 8 it under the terms of the GNU General Public License as published by |
| 10 the Free Software Foundation; either version 3 of the License, or | 9 the Free Software Foundation; either version 3 of the License, or |
| 11 (at your option) any later version. | 10 (at your option) any later version. |
| 12 | 11 |
| 13 This program is distributed in the hope that it will be useful, | 12 This program is distributed in the hope that it will be useful, |
| 14 but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 16 GNU General Public License for more details. | 15 GNU General Public License for more details. |
| 17 | 16 |
| 18 You should have received a copy of the GNU General Public License | 17 You should have received a copy of the GNU General Public License |
| 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */ | 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| 20 | 19 |
| 21 | 20 |
| 22 #include "defs.h" | 21 #include "defs.h" |
| 23 #include <stdio.h> | 22 #include <stdio.h> |
| 24 #include "gdb_string.h" | 23 #include <string.h> |
| 25 #include <ctype.h> | 24 #include <ctype.h> |
| 26 #include <stdarg.h> | 25 #include <stdarg.h> |
| 27 #include "demangle.h" | 26 #include "demangle.h" |
| 28 #include "gdb_regex.h" | 27 #include "gdb_regex.h" |
| 29 #include "frame.h" | 28 #include "frame.h" |
| 30 #include "symtab.h" | 29 #include "symtab.h" |
| 31 #include "gdbtypes.h" | 30 #include "gdbtypes.h" |
| 32 #include "gdbcmd.h" | 31 #include "gdbcmd.h" |
| 33 #include "expression.h" | 32 #include "expression.h" |
| 34 #include "parser-defs.h" | 33 #include "parser-defs.h" |
| 35 #include "language.h" | 34 #include "language.h" |
| 35 #include "varobj.h" |
| 36 #include "c-lang.h" | 36 #include "c-lang.h" |
| 37 #include "inferior.h" | 37 #include "inferior.h" |
| 38 #include "symfile.h" | 38 #include "symfile.h" |
| 39 #include "objfiles.h" | 39 #include "objfiles.h" |
| 40 #include "breakpoint.h" | 40 #include "breakpoint.h" |
| 41 #include "gdbcore.h" | 41 #include "gdbcore.h" |
| 42 #include "hashtab.h" | 42 #include "hashtab.h" |
| 43 #include "gdb_obstack.h" | 43 #include "gdb_obstack.h" |
| 44 #include "ada-lang.h" | 44 #include "ada-lang.h" |
| 45 #include "completer.h" | 45 #include "completer.h" |
| 46 #include "gdb_stat.h" | 46 #include <sys/stat.h> |
| 47 #ifdef UI_OUT | 47 #ifdef UI_OUT |
| 48 #include "ui-out.h" | 48 #include "ui-out.h" |
| 49 #endif | 49 #endif |
| 50 #include "block.h" | 50 #include "block.h" |
| 51 #include "infcall.h" | 51 #include "infcall.h" |
| 52 #include "dictionary.h" | 52 #include "dictionary.h" |
| 53 #include "exceptions.h" | 53 #include "exceptions.h" |
| 54 #include "annotate.h" | 54 #include "annotate.h" |
| 55 #include "valprint.h" | 55 #include "valprint.h" |
| 56 #include "source.h" | 56 #include "source.h" |
| 57 #include "observer.h" | 57 #include "observer.h" |
| 58 #include "vec.h" | 58 #include "vec.h" |
| 59 #include "stack.h" | 59 #include "stack.h" |
| 60 #include "gdb_vecs.h" | 60 #include "gdb_vecs.h" |
| 61 #include "typeprint.h" |
| 61 | 62 |
| 62 #include "psymtab.h" | 63 #include "psymtab.h" |
| 63 #include "value.h" | 64 #include "value.h" |
| 64 #include "mi/mi-common.h" | 65 #include "mi/mi-common.h" |
| 65 #include "arch-utils.h" | 66 #include "arch-utils.h" |
| 66 #include "exceptions.h" | 67 #include "exceptions.h" |
| 67 #include "cli/cli-utils.h" | 68 #include "cli/cli-utils.h" |
| 68 | 69 |
| 69 /* Define whether or not the C operator '/' truncates towards zero for | 70 /* Define whether or not the C operator '/' truncates towards zero for |
| 70 differently signed operands (truncation direction is undefined in C). | 71 differently signed operands (truncation direction is undefined in C). |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 struct block *); | 121 struct block *); |
| 121 | 122 |
| 122 static int num_defns_collected (struct obstack *); | 123 static int num_defns_collected (struct obstack *); |
| 123 | 124 |
| 124 static struct ada_symbol_info *defns_collected (struct obstack *, int); | 125 static struct ada_symbol_info *defns_collected (struct obstack *, int); |
| 125 | 126 |
| 126 static struct value *resolve_subexp (struct expression **, int *, int, | 127 static struct value *resolve_subexp (struct expression **, int *, int, |
| 127 struct type *); | 128 struct type *); |
| 128 | 129 |
| 129 static void replace_operator_with_call (struct expression **, int, int, int, | 130 static void replace_operator_with_call (struct expression **, int, int, int, |
| 130 struct symbol *, struct block *); | 131 struct symbol *, const struct block *); |
| 131 | 132 |
| 132 static int possible_user_operator_p (enum exp_opcode, struct value **); | 133 static int possible_user_operator_p (enum exp_opcode, struct value **); |
| 133 | 134 |
| 134 static char *ada_op_name (enum exp_opcode); | 135 static char *ada_op_name (enum exp_opcode); |
| 135 | 136 |
| 136 static const char *ada_decoded_op_name (enum exp_opcode); | 137 static const char *ada_decoded_op_name (enum exp_opcode); |
| 137 | 138 |
| 138 static int numeric_type_p (struct type *); | 139 static int numeric_type_p (struct type *); |
| 139 | 140 |
| 140 static int integer_type_p (struct type *); | 141 static int integer_type_p (struct type *); |
| 141 | 142 |
| 142 static int scalar_type_p (struct type *); | 143 static int scalar_type_p (struct type *); |
| 143 | 144 |
| 144 static int discrete_type_p (struct type *); | 145 static int discrete_type_p (struct type *); |
| 145 | 146 |
| 146 static enum ada_renaming_category parse_old_style_renaming (struct type *, | 147 static enum ada_renaming_category parse_old_style_renaming (struct type *, |
| 147 const char **, | 148 const char **, |
| 148 int *, | 149 int *, |
| 149 const char **); | 150 const char **); |
| 150 | 151 |
| 151 static struct symbol *find_old_style_renaming_symbol (const char *, | 152 static struct symbol *find_old_style_renaming_symbol (const char *, |
| 152 » » » » » » struct block *); | 153 » » » » » » const struct block *); |
| 153 | 154 |
| 154 static struct type *ada_lookup_struct_elt_type (struct type *, char *, | 155 static struct type *ada_lookup_struct_elt_type (struct type *, char *, |
| 155 int, int, int *); | 156 int, int, int *); |
| 156 | 157 |
| 157 static struct value *evaluate_subexp_type (struct expression *, int *); | 158 static struct value *evaluate_subexp_type (struct expression *, int *); |
| 158 | 159 |
| 159 static struct type *ada_find_parallel_type_with_name (struct type *, | 160 static struct type *ada_find_parallel_type_with_name (struct type *, |
| 160 const char *); | 161 const char *); |
| 161 | 162 |
| 162 static int is_dynamic_field (struct type *, int); | 163 static int is_dynamic_field (struct type *, int); |
| (...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 571 | 572 |
| 572 if (value_lazy (val) | 573 if (value_lazy (val) |
| 573 || TYPE_LENGTH (type) > TYPE_LENGTH (value_type (val))) | 574 || TYPE_LENGTH (type) > TYPE_LENGTH (value_type (val))) |
| 574 result = allocate_value_lazy (type); | 575 result = allocate_value_lazy (type); |
| 575 else | 576 else |
| 576 { | 577 { |
| 577 result = allocate_value (type); | 578 result = allocate_value (type); |
| 578 memcpy (value_contents_raw (result), value_contents (val), | 579 memcpy (value_contents_raw (result), value_contents (val), |
| 579 TYPE_LENGTH (type)); | 580 TYPE_LENGTH (type)); |
| 580 } | 581 } |
error: old chunk mismatch |
None
| OLD | NEW |