OLD | NEW |
1 /* Print in infix form a struct expression. | 1 /* Print in infix form a struct expression. |
2 | 2 |
3 Copyright (C) 1986, 1988-1989, 1991-2000, 2003, 2007-2012 Free | 3 Copyright (C) 1986, 1988-1989, 1991-2000, 2003, 2007-2012 Free |
4 Software Foundation, Inc. | 4 Software Foundation, Inc. |
5 | 5 |
6 This file is part of GDB. | 6 This file is part of GDB. |
7 | 7 |
8 This program is free software; you can redistribute it and/or modify | 8 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 | 9 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 | 10 the Free Software Foundation; either version 3 of the License, or |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 { | 129 { |
130 fputs_filtered (SYMBOL_PRINT_NAME (BLOCK_FUNCTION (b)), stream); | 130 fputs_filtered (SYMBOL_PRINT_NAME (BLOCK_FUNCTION (b)), stream); |
131 fputs_filtered ("::", stream); | 131 fputs_filtered ("::", stream); |
132 } | 132 } |
133 fputs_filtered (SYMBOL_PRINT_NAME (exp->elts[pc + 2].symbol), stream); | 133 fputs_filtered (SYMBOL_PRINT_NAME (exp->elts[pc + 2].symbol), stream); |
134 } | 134 } |
135 return; | 135 return; |
136 | 136 |
137 case OP_VAR_ENTRY_VALUE: | 137 case OP_VAR_ENTRY_VALUE: |
138 { | 138 { |
139 struct block *b; | |
140 | |
141 (*pos) += 2; | 139 (*pos) += 2; |
142 fprintf_filtered (stream, "%s@entry", | 140 fprintf_filtered (stream, "%s@entry", |
143 SYMBOL_PRINT_NAME (exp->elts[pc + 1].symbol)); | 141 SYMBOL_PRINT_NAME (exp->elts[pc + 1].symbol)); |
144 } | 142 } |
145 return; | 143 return; |
146 | 144 |
147 case OP_LAST: | 145 case OP_LAST: |
148 (*pos) += 2; | 146 (*pos) += 2; |
149 fprintf_filtered (stream, "$%d", | 147 fprintf_filtered (stream, "$%d", |
150 longest_to_int (exp->elts[pc + 1].longconst)); | 148 longest_to_int (exp->elts[pc + 1].longconst)); |
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
640 op_print_tab = current_language->la_op_print_tab; | 638 op_print_tab = current_language->la_op_print_tab; |
641 for (tem = 0; op_print_tab[tem].opcode != OP_NULL; tem++) | 639 for (tem = 0; op_print_tab[tem].opcode != OP_NULL; tem++) |
642 if (op_print_tab[tem].opcode == op) | 640 if (op_print_tab[tem].opcode == op) |
643 return op_print_tab[tem].string; | 641 return op_print_tab[tem].string; |
644 return NULL; | 642 return NULL; |
645 } | 643 } |
646 | 644 |
647 /* Support for dumping the raw data from expressions in a human readable | 645 /* Support for dumping the raw data from expressions in a human readable |
648 form. */ | 646 form. */ |
649 | 647 |
650 static char *op_name (struct expression *, enum exp_opcode); | |
651 static int dump_subexp_body (struct expression *exp, struct ui_file *, int); | 648 static int dump_subexp_body (struct expression *exp, struct ui_file *, int); |
652 | 649 |
653 /* Name for OPCODE, when it appears in expression EXP. */ | 650 /* Name for OPCODE, when it appears in expression EXP. */ |
654 | 651 |
655 static char * | 652 char * |
656 op_name (struct expression *exp, enum exp_opcode opcode) | 653 op_name (struct expression *exp, enum exp_opcode opcode) |
657 { | 654 { |
658 return exp->language_defn->la_exp_desc->op_name (opcode); | 655 return exp->language_defn->la_exp_desc->op_name (opcode); |
659 } | 656 } |
660 | 657 |
661 /* Default name for the standard operator OPCODE (i.e., one defined in | 658 /* Default name for the standard operator OPCODE (i.e., one defined in |
662 the definition of enum exp_opcode). */ | 659 the definition of enum exp_opcode). */ |
663 | 660 |
664 char * | 661 char * |
665 op_name_standard (enum exp_opcode opcode) | 662 op_name_standard (enum exp_opcode opcode) |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
968 | 965 |
969 len = longest_to_int (exp->elts[elt + 1].longconst); | 966 len = longest_to_int (exp->elts[elt + 1].longconst); |
970 elem_name = &exp->elts[elt + 2].string; | 967 elem_name = &exp->elts[elt + 2].string; |
971 | 968 |
972 fprintf_filtered (stream, "Field name: `%.*s'", len, elem_name); | 969 fprintf_filtered (stream, "Field name: `%.*s'", len, elem_name); |
973 elt += 4 + BYTES_TO_EXP_ELEM (len + 1); | 970 elt += 4 + BYTES_TO_EXP_ELEM (len + 1); |
974 } | 971 } |
975 break; | 972 break; |
976 case TYPE_INSTANCE: | 973 case TYPE_INSTANCE: |
977 { | 974 { |
978 char *elem_name; | |
979 LONGEST len; | 975 LONGEST len; |
980 | 976 |
981 len = exp->elts[elt++].longconst; | 977 len = exp->elts[elt++].longconst; |
982 fprintf_filtered (stream, "%s TypeInstance: ", plongest (len)); | 978 fprintf_filtered (stream, "%s TypeInstance: ", plongest (len)); |
983 while (len-- > 0) | 979 while (len-- > 0) |
984 { | 980 { |
985 fprintf_filtered (stream, "Type @"); | 981 fprintf_filtered (stream, "Type @"); |
986 gdb_print_host_address (exp->elts[elt].type, stream); | 982 gdb_print_host_address (exp->elts[elt].type, stream); |
987 fprintf_filtered (stream, " ("); | 983 fprintf_filtered (stream, " ("); |
988 type_print (exp->elts[elt].type, NULL, stream, 0); | 984 type_print (exp->elts[elt].type, NULL, stream, 0); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1028 fputs_filtered ("Type printing not yet supported....", stream); | 1024 fputs_filtered ("Type printing not yet supported....", stream); |
1029 fprintf_filtered (stream, "'\n\tLanguage %s, %d elements, %ld bytes each.\n", | 1025 fprintf_filtered (stream, "'\n\tLanguage %s, %d elements, %ld bytes each.\n", |
1030 exp->language_defn->la_name, exp->nelts, | 1026 exp->language_defn->la_name, exp->nelts, |
1031 (long) sizeof (union exp_element)); | 1027 (long) sizeof (union exp_element)); |
1032 fputs_filtered ("\n", stream); | 1028 fputs_filtered ("\n", stream); |
1033 | 1029 |
1034 for (elt = 0; elt < exp->nelts;) | 1030 for (elt = 0; elt < exp->nelts;) |
1035 elt = dump_subexp (exp, stream, elt); | 1031 elt = dump_subexp (exp, stream, elt); |
1036 fputs_filtered ("\n", stream); | 1032 fputs_filtered ("\n", stream); |
1037 } | 1033 } |
OLD | NEW |