Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(468)

Side by Side Diff: gdb/expression.h

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gdb/expprint.c ('k') | gdb/f-exp.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Definitions for expressions stored in reversed prefix form, for GDB. 1 /* Definitions for expressions stored in reversed prefix form, for GDB.
2 2
3 Copyright (C) 1986, 1989, 1992, 1994, 2000, 2003, 2005, 2007-2012 3 Copyright (C) 1986-2013 Free Software Foundation, Inc.
4 Free 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
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 enum exp_opcode opcode; 65 enum exp_opcode opcode;
67 struct symbol *symbol; 66 struct symbol *symbol;
68 LONGEST longconst; 67 LONGEST longconst;
69 DOUBLEST doubleconst; 68 DOUBLEST doubleconst;
70 gdb_byte decfloatconst[16]; 69 gdb_byte decfloatconst[16];
71 /* Really sizeof (union exp_element) characters (or less for the last 70 /* Really sizeof (union exp_element) characters (or less for the last
72 element of a string). */ 71 element of a string). */
73 char string; 72 char string;
74 struct type *type; 73 struct type *type;
75 struct internalvar *internalvar; 74 struct internalvar *internalvar;
76 struct block *block; 75 const struct block *block;
77 struct objfile *objfile; 76 struct objfile *objfile;
78 }; 77 };
79 78
80 struct expression 79 struct expression
81 { 80 {
82 const struct language_defn *language_defn; /* language it was 81 const struct language_defn *language_defn; /* language it was
83 entered in. */ 82 entered in. */
84 struct gdbarch *gdbarch; /* architecture it was parsed in. */ 83 struct gdbarch *gdbarch; /* architecture it was parsed in. */
85 int nelts; 84 int nelts;
86 union exp_element elts[1]; 85 union exp_element elts[1];
87 }; 86 };
88 87
89 /* Macros for converting between number of expression elements and bytes 88 /* Macros for converting between number of expression elements and bytes
90 to store that many expression elements. */ 89 to store that many expression elements. */
91 90
92 #define EXP_ELEM_TO_BYTES(elements) \ 91 #define EXP_ELEM_TO_BYTES(elements) \
93 ((elements) * sizeof (union exp_element)) 92 ((elements) * sizeof (union exp_element))
94 #define BYTES_TO_EXP_ELEM(bytes) \ 93 #define BYTES_TO_EXP_ELEM(bytes) \
95 (((bytes) + sizeof (union exp_element) - 1) / sizeof (union exp_element)) 94 (((bytes) + sizeof (union exp_element) - 1) / sizeof (union exp_element))
96 95
97 /* From parse.c */ 96 /* From parse.c */
98 97
99 extern struct expression *parse_expression (char *); 98 extern struct expression *parse_expression (const char *);
100 99
101 extern struct type *parse_field_expression (char *, char **); 100 extern struct type *parse_expression_for_completion (const char *, char **,
101 » » » » » » enum type_code *);
102 102
103 extern struct expression *parse_exp_1 (char **, CORE_ADDR pc, struct block *, 103 extern struct expression *parse_exp_1 (const char **, CORE_ADDR pc,
104 » » » » int); 104 » » » » const struct block *, int);
105 105
106 /* For use by parsers; set if we want to parse an expression and 106 /* For use by parsers; set if we want to parse an expression and
107 attempt to complete a field name. */ 107 attempt completion. */
108 extern int in_parse_field; 108 extern int parse_completion;
109 109
110 /* The innermost context required by the stack and register variables 110 /* The innermost context required by the stack and register variables
111 we've encountered so far. To use this, set it to NULL, then call 111 we've encountered so far. To use this, set it to NULL, then call
112 parse_<whatever>, then look at it. */ 112 parse_<whatever>, then look at it. */
113 extern struct block *innermost_block; 113 extern const struct block *innermost_block;
114 114
115 /* From eval.c */ 115 /* From eval.c */
116 116
117 /* Values of NOSIDE argument to eval_subexp. */ 117 /* Values of NOSIDE argument to eval_subexp. */
118 118
119 enum noside 119 enum noside
120 { 120 {
121 EVAL_NORMAL, 121 EVAL_NORMAL,
122 EVAL_SKIP, /* Only effect is to increment pos. */ 122 EVAL_SKIP, /* Only effect is to increment pos. */
123 EVAL_AVOID_SIDE_EFFECTS /* Don't modify any variables or 123 EVAL_AVOID_SIDE_EFFECTS /* Don't modify any variables or
124 call any functions. The value 124 call any functions. The value
125 returned will have the correct 125 returned will have the correct
126 type, and will have an 126 type, and will have an
127 approximately correct lvalue 127 approximately correct lvalue
128 type (inaccuracy: anything that is 128 type (inaccuracy: anything that is
129 listed as being in a register in 129 listed as being in a register in
130 the function in which it was 130 the function in which it was
131 » » » » declared will be lval_register). */ 131 » » » » declared will be lval_register).
132 » » » » Ideally this would not even read
133 » » » » target memory, but currently it
134 » » » » does in many situations. */
132 }; 135 };
133 136
134 extern struct value *evaluate_subexp_standard 137 extern struct value *evaluate_subexp_standard
135 (struct type *, struct expression *, int *, enum noside); 138 (struct type *, struct expression *, int *, enum noside);
136 139
137 /* From expprint.c */ 140 /* From expprint.c */
138 141
139 extern void print_expression (struct expression *, struct ui_file *); 142 extern void print_expression (struct expression *, struct ui_file *);
140 143
141 extern char *op_name (struct expression *exp, enum exp_opcode opcode); 144 extern char *op_name (struct expression *exp, enum exp_opcode opcode);
142 145
143 extern char *op_string (enum exp_opcode); 146 extern char *op_string (enum exp_opcode);
144 147
145 extern void dump_raw_expression (struct expression *, 148 extern void dump_raw_expression (struct expression *,
146 struct ui_file *, char *); 149 struct ui_file *, char *);
147 extern void dump_prefix_expression (struct expression *, struct ui_file *); 150 extern void dump_prefix_expression (struct expression *, struct ui_file *);
148 151
149 #endif /* !defined (EXPRESSION_H) */ 152 #endif /* !defined (EXPRESSION_H) */
OLDNEW
« no previous file with comments | « gdb/expprint.c ('k') | gdb/f-exp.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698