compile: Remove non-const reference parameters
As mentioned here: https://sourceware.org/gdb/wiki/Internals%20GDB-C-Coding-Standards#Avoid_non-const_reference_parameters.2C_use_pointers_instead we prefer to avoid non-const references. This patch changes the non-const references I could find in the compile/ directory, either by making them rvalue-reference (&&) or changing them to pointers. I'd say all the changes are pretty obvious, except the one in compile_cplus_instance::enter_scope which might require more attention. gdb/ChangeLog: * compile/compile-c.h (generate_c_for_variable_locations): Change reference to pointer. * compile/compile-c-support.c (compile_program) <compute>: Likewise. * compile/compile-c-symbols.c (generate_vla_size): Likewise. (generate_c_for_for_one_variable): Likewise (generate_c_for_variable_locations): Likewise * compile/compile-c-types.c (compile_c_instance::convert_type): Likewise * compile/compile-cplus-symbols.c (convert_one_symbol): std::move the scope passed to enter_scope. * compile/compile-cplus-types.c (compile_cplus_instance::enter_scope): Make parameter rvalue-reference. (compile_cplus_instance::new_scope): Change reference to pointer. (compile_cplus_instance::convert_type): Likewise (compile_cplus_convert_typedef): std::move the scope passed to enter_scope. (compile_cplus_convert_struct_or_union): Likewise. (compile_cplus_convert_enum): Likewise. (compile_cplus_convert_namespace): Likewise. * compile/compile-cplus.h (compile_cplus_instance) <enter_scope>: Make parameter rvalue-reference. * compile/compile-internal.h (compile_instance) <get_cached_type>: Likewise * compile/compile-loc2c.c (push): Likewise (pushf): Likewise (unary): Likewise (binary): Likewise (print_label): Likewise (pushf_register_address): Likewise (pushf_register): Likewise (do_compile_dwarf_expr_to_c): Likewise (compile_dwarf_expr_to_c): Likewise (compile_dwarf_bounds_to_c): Likewise * compile/compile.c (compile_instance::get_cached_type): Likewise * compile/compile.h (compile_dwarf_expr_to_c): Likewise. (compile_dwarf_bounds_to_c): Likewise * dwarf2loc.c (locexpr_generate_c_location): Likewise. (dwarf2_compile_property_to_c): Likewise * dwarf2loc.h (dwarf2_compile_property_to_c): Likewise * symtab.h (struct symbol_computed_ops) <generate_c_location>: Likewise
This commit is contained in:
parent
cc5a5ae5b7
commit
d82b3862f1
15 changed files with 132 additions and 86 deletions
|
@ -1,3 +1,51 @@
|
||||||
|
2018-09-06 Simon Marchi <simon.marchi@ericsson.com>
|
||||||
|
|
||||||
|
* compile/compile-c.h (generate_c_for_variable_locations):
|
||||||
|
Change reference to pointer.
|
||||||
|
* compile/compile-c-support.c (compile_program) <compute>:
|
||||||
|
Likewise.
|
||||||
|
* compile/compile-c-symbols.c (generate_vla_size): Likewise.
|
||||||
|
(generate_c_for_for_one_variable): Likewise
|
||||||
|
(generate_c_for_variable_locations): Likewise
|
||||||
|
* compile/compile-c-types.c (compile_c_instance::convert_type):
|
||||||
|
Likewise
|
||||||
|
* compile/compile-cplus-symbols.c (convert_one_symbol):
|
||||||
|
std::move the scope passed to enter_scope.
|
||||||
|
* compile/compile-cplus-types.c
|
||||||
|
(compile_cplus_instance::enter_scope): Make parameter
|
||||||
|
rvalue-reference.
|
||||||
|
(compile_cplus_instance::new_scope): Change reference to
|
||||||
|
pointer.
|
||||||
|
(compile_cplus_instance::convert_type): Likewise
|
||||||
|
(compile_cplus_convert_typedef): std::move the scope passed to
|
||||||
|
enter_scope.
|
||||||
|
(compile_cplus_convert_struct_or_union): Likewise.
|
||||||
|
(compile_cplus_convert_enum): Likewise.
|
||||||
|
(compile_cplus_convert_namespace): Likewise.
|
||||||
|
* compile/compile-cplus.h (compile_cplus_instance)
|
||||||
|
<enter_scope>: Make parameter rvalue-reference.
|
||||||
|
* compile/compile-internal.h (compile_instance)
|
||||||
|
<get_cached_type>: Likewise
|
||||||
|
* compile/compile-loc2c.c (push): Likewise
|
||||||
|
(pushf): Likewise
|
||||||
|
(unary): Likewise
|
||||||
|
(binary): Likewise
|
||||||
|
(print_label): Likewise
|
||||||
|
(pushf_register_address): Likewise
|
||||||
|
(pushf_register): Likewise
|
||||||
|
(do_compile_dwarf_expr_to_c): Likewise
|
||||||
|
(compile_dwarf_expr_to_c): Likewise
|
||||||
|
(compile_dwarf_bounds_to_c): Likewise
|
||||||
|
* compile/compile.c (compile_instance::get_cached_type):
|
||||||
|
Likewise
|
||||||
|
* compile/compile.h (compile_dwarf_expr_to_c): Likewise.
|
||||||
|
(compile_dwarf_bounds_to_c): Likewise
|
||||||
|
* dwarf2loc.c (locexpr_generate_c_location): Likewise.
|
||||||
|
(dwarf2_compile_property_to_c): Likewise
|
||||||
|
* dwarf2loc.h (dwarf2_compile_property_to_c): Likewise
|
||||||
|
* symtab.h (struct symbol_computed_ops) <generate_c_location>:
|
||||||
|
Likewise
|
||||||
|
|
||||||
2018-09-06 Simon Marchi <simon.marchi@ericsson.com>
|
2018-09-06 Simon Marchi <simon.marchi@ericsson.com>
|
||||||
|
|
||||||
* tui/tui-data.h (struct tui_win_element) <highlight>: Remove.
|
* tui/tui-data.h (struct tui_win_element) <highlight>: Remove.
|
||||||
|
|
|
@ -572,7 +572,7 @@ public:
|
||||||
register struct before the function body. This requires a
|
register struct before the function body. This requires a
|
||||||
temporary stream. */
|
temporary stream. */
|
||||||
gdb::unique_xmalloc_ptr<unsigned char> registers_used
|
gdb::unique_xmalloc_ptr<unsigned char> registers_used
|
||||||
= generate_c_for_variable_locations (m_instance, var_stream, m_arch,
|
= generate_c_for_variable_locations (m_instance, &var_stream, m_arch,
|
||||||
expr_block, expr_pc);
|
expr_block, expr_pc);
|
||||||
|
|
||||||
buf.puts ("typedef unsigned int"
|
buf.puts ("typedef unsigned int"
|
||||||
|
|
|
@ -487,7 +487,7 @@ symbol_seen (htab_t hashtab, struct symbol *sym)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
generate_vla_size (compile_instance *compiler,
|
generate_vla_size (compile_instance *compiler,
|
||||||
string_file &stream,
|
string_file *stream,
|
||||||
struct gdbarch *gdbarch,
|
struct gdbarch *gdbarch,
|
||||||
unsigned char *registers_used,
|
unsigned char *registers_used,
|
||||||
CORE_ADDR pc,
|
CORE_ADDR pc,
|
||||||
|
@ -541,7 +541,7 @@ generate_vla_size (compile_instance *compiler,
|
||||||
|
|
||||||
static void
|
static void
|
||||||
generate_c_for_for_one_variable (compile_instance *compiler,
|
generate_c_for_for_one_variable (compile_instance *compiler,
|
||||||
string_file &stream,
|
string_file *stream,
|
||||||
struct gdbarch *gdbarch,
|
struct gdbarch *gdbarch,
|
||||||
unsigned char *registers_used,
|
unsigned char *registers_used,
|
||||||
CORE_ADDR pc,
|
CORE_ADDR pc,
|
||||||
|
@ -556,10 +556,10 @@ generate_c_for_for_one_variable (compile_instance *compiler,
|
||||||
occurs in the middle. */
|
occurs in the middle. */
|
||||||
string_file local_file;
|
string_file local_file;
|
||||||
|
|
||||||
generate_vla_size (compiler, local_file, gdbarch, registers_used, pc,
|
generate_vla_size (compiler, &local_file, gdbarch, registers_used, pc,
|
||||||
SYMBOL_TYPE (sym), sym);
|
SYMBOL_TYPE (sym), sym);
|
||||||
|
|
||||||
stream.write (local_file.c_str (), local_file.size ());
|
stream->write (local_file.c_str (), local_file.size ());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SYMBOL_COMPUTED_OPS (sym) != NULL)
|
if (SYMBOL_COMPUTED_OPS (sym) != NULL)
|
||||||
|
@ -570,12 +570,12 @@ generate_c_for_for_one_variable (compile_instance *compiler,
|
||||||
occurs in the middle. */
|
occurs in the middle. */
|
||||||
string_file local_file;
|
string_file local_file;
|
||||||
|
|
||||||
SYMBOL_COMPUTED_OPS (sym)->generate_c_location (sym, local_file,
|
SYMBOL_COMPUTED_OPS (sym)->generate_c_location (sym, &local_file,
|
||||||
gdbarch,
|
gdbarch,
|
||||||
registers_used,
|
registers_used,
|
||||||
pc,
|
pc,
|
||||||
generated_name.get ());
|
generated_name.get ());
|
||||||
stream.write (local_file.c_str (), local_file.size ());
|
stream->write (local_file.c_str (), local_file.size ());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -611,7 +611,7 @@ generate_c_for_for_one_variable (compile_instance *compiler,
|
||||||
|
|
||||||
gdb::unique_xmalloc_ptr<unsigned char>
|
gdb::unique_xmalloc_ptr<unsigned char>
|
||||||
generate_c_for_variable_locations (compile_instance *compiler,
|
generate_c_for_variable_locations (compile_instance *compiler,
|
||||||
string_file &stream,
|
string_file *stream,
|
||||||
struct gdbarch *gdbarch,
|
struct gdbarch *gdbarch,
|
||||||
const struct block *block,
|
const struct block *block,
|
||||||
CORE_ADDR pc)
|
CORE_ADDR pc)
|
||||||
|
|
|
@ -353,7 +353,7 @@ compile_c_instance::convert_type (struct type *type)
|
||||||
type = check_typedef (type);
|
type = check_typedef (type);
|
||||||
|
|
||||||
gcc_type result;
|
gcc_type result;
|
||||||
if (get_cached_type (type, result))
|
if (get_cached_type (type, &result))
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
result = convert_type_basic (this, type);
|
result = convert_type_basic (this, type);
|
||||||
|
|
|
@ -69,7 +69,7 @@ private:
|
||||||
extern gdb::unique_xmalloc_ptr<unsigned char>
|
extern gdb::unique_xmalloc_ptr<unsigned char>
|
||||||
generate_c_for_variable_locations
|
generate_c_for_variable_locations
|
||||||
(compile_instance *compiler,
|
(compile_instance *compiler,
|
||||||
string_file &stream,
|
string_file *stream,
|
||||||
struct gdbarch *gdbarch,
|
struct gdbarch *gdbarch,
|
||||||
const struct block *block,
|
const struct block *block,
|
||||||
CORE_ADDR pc);
|
CORE_ADDR pc);
|
||||||
|
|
|
@ -184,13 +184,11 @@ convert_one_symbol (compile_cplus_instance *instance,
|
||||||
/* Don't emit local variable decls for a raw expression. */
|
/* Don't emit local variable decls for a raw expression. */
|
||||||
if (instance->scope () != COMPILE_I_RAW_SCOPE || symbol_name == nullptr)
|
if (instance->scope () != COMPILE_I_RAW_SCOPE || symbol_name == nullptr)
|
||||||
{
|
{
|
||||||
compile_scope scope;
|
|
||||||
|
|
||||||
/* For non-local symbols, create/push a new scope so that the
|
/* For non-local symbols, create/push a new scope so that the
|
||||||
symbol is properly scoped to the plug-in. */
|
symbol is properly scoped to the plug-in. */
|
||||||
if (!is_local)
|
if (!is_local)
|
||||||
{
|
{
|
||||||
scope
|
compile_scope scope
|
||||||
= instance->new_scope (SYMBOL_NATURAL_NAME (sym.symbol),
|
= instance->new_scope (SYMBOL_NATURAL_NAME (sym.symbol),
|
||||||
SYMBOL_TYPE (sym.symbol));
|
SYMBOL_TYPE (sym.symbol));
|
||||||
if (scope.nested_type () != GCC_TYPE_NONE)
|
if (scope.nested_type () != GCC_TYPE_NONE)
|
||||||
|
@ -200,7 +198,7 @@ convert_one_symbol (compile_cplus_instance *instance,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
instance->enter_scope (scope);
|
instance->enter_scope (std::move (scope));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the `raw' name of the symbol. */
|
/* Get the `raw' name of the symbol. */
|
||||||
|
|
|
@ -247,14 +247,14 @@ operator!= (const compile_scope &lhs, const compile_scope &rhs)
|
||||||
/* See description in compile-cplus.h. */
|
/* See description in compile-cplus.h. */
|
||||||
|
|
||||||
void
|
void
|
||||||
compile_cplus_instance::enter_scope (compile_scope &new_scope)
|
compile_cplus_instance::enter_scope (compile_scope &&new_scope)
|
||||||
{
|
{
|
||||||
bool must_push = m_scopes.empty () || m_scopes.back () != new_scope;
|
bool must_push = m_scopes.empty () || m_scopes.back () != new_scope;
|
||||||
|
|
||||||
new_scope.m_pushed = must_push;
|
new_scope.m_pushed = must_push;
|
||||||
|
|
||||||
/* Save the new scope. */
|
/* Save the new scope. */
|
||||||
m_scopes.push_back (new_scope);
|
m_scopes.push_back (std::move (new_scope));
|
||||||
|
|
||||||
if (must_push)
|
if (must_push)
|
||||||
{
|
{
|
||||||
|
@ -360,7 +360,7 @@ compile_cplus_instance::new_scope (const char *type_name, struct type *type)
|
||||||
class, the previous call will give us that type's gcc_type.
|
class, the previous call will give us that type's gcc_type.
|
||||||
Upper layers are expecting to get the original type's
|
Upper layers are expecting to get the original type's
|
||||||
gcc_type! */
|
gcc_type! */
|
||||||
get_cached_type (type, scope.m_nested_type);
|
get_cached_type (type, &scope.m_nested_type);
|
||||||
return scope;
|
return scope;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -526,7 +526,7 @@ compile_cplus_convert_typedef (compile_cplus_instance *instance,
|
||||||
= compile_cplus_instance::decl_name (TYPE_NAME (type));
|
= compile_cplus_instance::decl_name (TYPE_NAME (type));
|
||||||
|
|
||||||
/* Make sure the scope for this type has been pushed. */
|
/* Make sure the scope for this type has been pushed. */
|
||||||
instance->enter_scope (scope);
|
instance->enter_scope (std::move (scope));
|
||||||
|
|
||||||
/* Convert the typedef's real type. */
|
/* Convert the typedef's real type. */
|
||||||
gcc_type typedef_type = instance->convert_type (check_typedef (type));
|
gcc_type typedef_type = instance->convert_type (check_typedef (type));
|
||||||
|
@ -822,7 +822,7 @@ compile_cplus_convert_struct_or_union (compile_cplus_instance *instance,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Push all scopes. */
|
/* Push all scopes. */
|
||||||
instance->enter_scope (scope);
|
instance->enter_scope (std::move (scope));
|
||||||
|
|
||||||
/* First we create the resulting type and enter it into our hash
|
/* First we create the resulting type and enter it into our hash
|
||||||
table. This lets recursive types work. */
|
table. This lets recursive types work. */
|
||||||
|
@ -928,7 +928,7 @@ compile_cplus_convert_enum (compile_cplus_instance *instance, struct type *type,
|
||||||
= compile_cplus_instance::decl_name (TYPE_NAME (type));
|
= compile_cplus_instance::decl_name (TYPE_NAME (type));
|
||||||
|
|
||||||
/* Push all scopes. */
|
/* Push all scopes. */
|
||||||
instance->enter_scope (scope);
|
instance->enter_scope (std::move (scope));
|
||||||
|
|
||||||
gcc_type int_type
|
gcc_type int_type
|
||||||
= instance->plugin ().get_int_type (TYPE_UNSIGNED (type),
|
= instance->plugin ().get_int_type (TYPE_UNSIGNED (type),
|
||||||
|
@ -1109,7 +1109,7 @@ compile_cplus_convert_namespace (compile_cplus_instance *instance,
|
||||||
= compile_cplus_instance::decl_name (TYPE_NAME (type));
|
= compile_cplus_instance::decl_name (TYPE_NAME (type));
|
||||||
|
|
||||||
/* Push scope. */
|
/* Push scope. */
|
||||||
instance->enter_scope (scope);
|
instance->enter_scope (std::move (scope));
|
||||||
|
|
||||||
/* Convert this namespace. */
|
/* Convert this namespace. */
|
||||||
instance->plugin ().push_namespace (name.get ());
|
instance->plugin ().push_namespace (name.get ());
|
||||||
|
@ -1211,7 +1211,7 @@ compile_cplus_instance::convert_type (struct type *type,
|
||||||
{
|
{
|
||||||
/* Check if TYPE has already been converted. */
|
/* Check if TYPE has already been converted. */
|
||||||
gcc_type result;
|
gcc_type result;
|
||||||
if (get_cached_type (type, result))
|
if (get_cached_type (type, &result))
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
/* It is the first time this type has been seen -- convert it
|
/* It is the first time this type has been seen -- convert it
|
||||||
|
|
|
@ -159,7 +159,7 @@ public:
|
||||||
compile_scope new_scope (const char *type_name, struct type *type);
|
compile_scope new_scope (const char *type_name, struct type *type);
|
||||||
|
|
||||||
/* Enter the given NEW_SCOPE. */
|
/* Enter the given NEW_SCOPE. */
|
||||||
void enter_scope (compile_scope &scope);
|
void enter_scope (compile_scope &&scope);
|
||||||
|
|
||||||
/* Leave the current scope. */
|
/* Leave the current scope. */
|
||||||
void leave_scope ();
|
void leave_scope ();
|
||||||
|
|
|
@ -59,7 +59,7 @@ public:
|
||||||
|
|
||||||
/* Query the type cache for TYPE, returning the compiler's
|
/* Query the type cache for TYPE, returning the compiler's
|
||||||
type for it in RET. */
|
type for it in RET. */
|
||||||
bool get_cached_type (struct type *type, gcc_type &ret) const;
|
bool get_cached_type (struct type *type, gcc_type *ret) const;
|
||||||
|
|
||||||
/* Insert GCC_TYPE into the type cache for TYPE.
|
/* Insert GCC_TYPE into the type cache for TYPE.
|
||||||
|
|
||||||
|
|
|
@ -430,9 +430,9 @@ compute_stack_depth (enum bfd_endian byte_order, unsigned int addr_size,
|
||||||
/* Emit code to push a constant. */
|
/* Emit code to push a constant. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
push (int indent, string_file &stream, ULONGEST l)
|
push (int indent, string_file *stream, ULONGEST l)
|
||||||
{
|
{
|
||||||
fprintfi_filtered (indent, &stream,
|
fprintfi_filtered (indent, stream,
|
||||||
"__gdb_stack[++__gdb_tos] = (" GCC_UINTPTR ") %s;\n",
|
"__gdb_stack[++__gdb_tos] = (" GCC_UINTPTR ") %s;\n",
|
||||||
hex_string (l));
|
hex_string (l));
|
||||||
}
|
}
|
||||||
|
@ -440,57 +440,57 @@ push (int indent, string_file &stream, ULONGEST l)
|
||||||
/* Emit code to push an arbitrary expression. This works like
|
/* Emit code to push an arbitrary expression. This works like
|
||||||
printf. */
|
printf. */
|
||||||
|
|
||||||
static void pushf (int indent, string_file &stream, const char *format, ...)
|
static void pushf (int indent, string_file *stream, const char *format, ...)
|
||||||
ATTRIBUTE_PRINTF (3, 4);
|
ATTRIBUTE_PRINTF (3, 4);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pushf (int indent, string_file &stream, const char *format, ...)
|
pushf (int indent, string_file *stream, const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
fprintfi_filtered (indent, &stream, "__gdb_stack[__gdb_tos + 1] = ");
|
fprintfi_filtered (indent, stream, "__gdb_stack[__gdb_tos + 1] = ");
|
||||||
va_start (args, format);
|
va_start (args, format);
|
||||||
stream.vprintf (format, args);
|
stream->vprintf (format, args);
|
||||||
va_end (args);
|
va_end (args);
|
||||||
stream.puts (";\n");
|
stream->puts (";\n");
|
||||||
|
|
||||||
fprintfi_filtered (indent, &stream, "++__gdb_tos;\n");
|
fprintfi_filtered (indent, stream, "++__gdb_tos;\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Emit code for a unary expression -- one which operates in-place on
|
/* Emit code for a unary expression -- one which operates in-place on
|
||||||
the top-of-stack. This works like printf. */
|
the top-of-stack. This works like printf. */
|
||||||
|
|
||||||
static void unary (int indent, string_file &stream, const char *format, ...)
|
static void unary (int indent, string_file *stream, const char *format, ...)
|
||||||
ATTRIBUTE_PRINTF (3, 4);
|
ATTRIBUTE_PRINTF (3, 4);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
unary (int indent, string_file &stream, const char *format, ...)
|
unary (int indent, string_file *stream, const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
fprintfi_filtered (indent, &stream, "__gdb_stack[__gdb_tos] = ");
|
fprintfi_filtered (indent, stream, "__gdb_stack[__gdb_tos] = ");
|
||||||
va_start (args, format);
|
va_start (args, format);
|
||||||
stream.vprintf (format, args);
|
stream->vprintf (format, args);
|
||||||
va_end (args);
|
va_end (args);
|
||||||
stream.puts (";\n");
|
stream->puts (";\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Emit code for a unary expression -- one which uses the top two
|
/* Emit code for a unary expression -- one which uses the top two
|
||||||
stack items, popping the topmost one. This works like printf. */
|
stack items, popping the topmost one. This works like printf. */
|
||||||
static void binary (int indent, string_file &stream, const char *format, ...)
|
static void binary (int indent, string_file *stream, const char *format, ...)
|
||||||
ATTRIBUTE_PRINTF (3, 4);
|
ATTRIBUTE_PRINTF (3, 4);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
binary (int indent, string_file &stream, const char *format, ...)
|
binary (int indent, string_file *stream, const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
fprintfi_filtered (indent, &stream, "__gdb_stack[__gdb_tos - 1] = ");
|
fprintfi_filtered (indent, stream, "__gdb_stack[__gdb_tos - 1] = ");
|
||||||
va_start (args, format);
|
va_start (args, format);
|
||||||
stream.vprintf (format, args);
|
stream->vprintf (format, args);
|
||||||
va_end (args);
|
va_end (args);
|
||||||
stream.puts (";\n");
|
stream->puts (";\n");
|
||||||
fprintfi_filtered (indent, &stream, "--__gdb_tos;\n");
|
fprintfi_filtered (indent, stream, "--__gdb_tos;\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print the name of a label given its "SCOPE", an arbitrary integer
|
/* Print the name of a label given its "SCOPE", an arbitrary integer
|
||||||
|
@ -498,9 +498,9 @@ binary (int indent, string_file &stream, const char *format, ...)
|
||||||
corresponding to the label's point of definition. */
|
corresponding to the label's point of definition. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
print_label (string_file &stream, unsigned int scope, int target)
|
print_label (string_file *stream, unsigned int scope, int target)
|
||||||
{
|
{
|
||||||
stream.printf ("__label_%u_%s", scope, pulongest (target));
|
stream->printf ("__label_%u_%s", scope, pulongest (target));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Emit code that pushes a register's address on the stack.
|
/* Emit code that pushes a register's address on the stack.
|
||||||
|
@ -508,7 +508,7 @@ print_label (string_file &stream, unsigned int scope, int target)
|
||||||
register was needed by this expression. */
|
register was needed by this expression. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pushf_register_address (int indent, string_file &stream,
|
pushf_register_address (int indent, string_file *stream,
|
||||||
unsigned char *registers_used,
|
unsigned char *registers_used,
|
||||||
struct gdbarch *gdbarch, int regnum)
|
struct gdbarch *gdbarch, int regnum)
|
||||||
{
|
{
|
||||||
|
@ -526,7 +526,7 @@ pushf_register_address (int indent, string_file &stream,
|
||||||
register's value before it is pushed. */
|
register's value before it is pushed. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pushf_register (int indent, string_file &stream,
|
pushf_register (int indent, string_file *stream,
|
||||||
unsigned char *registers_used,
|
unsigned char *registers_used,
|
||||||
struct gdbarch *gdbarch, int regnum, uint64_t offset)
|
struct gdbarch *gdbarch, int regnum, uint64_t offset)
|
||||||
{
|
{
|
||||||
|
@ -572,7 +572,7 @@ pushf_register (int indent, string_file &stream,
|
||||||
things. */
|
things. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
do_compile_dwarf_expr_to_c (int indent, string_file &stream,
|
do_compile_dwarf_expr_to_c (int indent, string_file *stream,
|
||||||
const char *type_name,
|
const char *type_name,
|
||||||
const char *result_name,
|
const char *result_name,
|
||||||
struct symbol *sym, CORE_ADDR pc,
|
struct symbol *sym, CORE_ADDR pc,
|
||||||
|
@ -596,9 +596,9 @@ do_compile_dwarf_expr_to_c (int indent, string_file &stream,
|
||||||
|
|
||||||
++scope;
|
++scope;
|
||||||
|
|
||||||
fprintfi_filtered (indent, &stream, "__attribute__ ((unused)) %s %s;\n",
|
fprintfi_filtered (indent, stream, "__attribute__ ((unused)) %s %s;\n",
|
||||||
type_name, result_name);
|
type_name, result_name);
|
||||||
fprintfi_filtered (indent, &stream, "{\n");
|
fprintfi_filtered (indent, stream, "{\n");
|
||||||
indent += 2;
|
indent += 2;
|
||||||
|
|
||||||
stack_depth = compute_stack_depth (byte_order, addr_size,
|
stack_depth = compute_stack_depth (byte_order, addr_size,
|
||||||
|
@ -634,19 +634,19 @@ do_compile_dwarf_expr_to_c (int indent, string_file &stream,
|
||||||
"compiled code."),
|
"compiled code."),
|
||||||
SYMBOL_PRINT_NAME (sym));
|
SYMBOL_PRINT_NAME (sym));
|
||||||
|
|
||||||
fprintfi_filtered (indent, &stream, "%s = %s;\n",
|
fprintfi_filtered (indent, stream, "%s = %s;\n",
|
||||||
result_name,
|
result_name,
|
||||||
core_addr_to_string (value_address (val)));
|
core_addr_to_string (value_address (val)));
|
||||||
fprintfi_filtered (indent - 2, &stream, "}\n");
|
fprintfi_filtered (indent - 2, stream, "}\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintfi_filtered (indent, &stream, GCC_UINTPTR " __gdb_stack[%d];\n",
|
fprintfi_filtered (indent, stream, GCC_UINTPTR " __gdb_stack[%d];\n",
|
||||||
stack_depth);
|
stack_depth);
|
||||||
|
|
||||||
if (need_tempvar)
|
if (need_tempvar)
|
||||||
fprintfi_filtered (indent, &stream, GCC_UINTPTR " __gdb_tmp;\n");
|
fprintfi_filtered (indent, stream, GCC_UINTPTR " __gdb_tmp;\n");
|
||||||
fprintfi_filtered (indent, &stream, "int __gdb_tos = -1;\n");
|
fprintfi_filtered (indent, stream, "int __gdb_tos = -1;\n");
|
||||||
|
|
||||||
if (initial != NULL)
|
if (initial != NULL)
|
||||||
pushf (indent, stream, "%s", core_addr_to_string (*initial));
|
pushf (indent, stream, "%s", core_addr_to_string (*initial));
|
||||||
|
@ -657,13 +657,13 @@ do_compile_dwarf_expr_to_c (int indent, string_file &stream,
|
||||||
uint64_t uoffset, reg;
|
uint64_t uoffset, reg;
|
||||||
int64_t offset;
|
int64_t offset;
|
||||||
|
|
||||||
print_spaces (indent - 2, &stream);
|
print_spaces (indent - 2, stream);
|
||||||
if (info[op_ptr - base].label)
|
if (info[op_ptr - base].label)
|
||||||
{
|
{
|
||||||
print_label (stream, scope, op_ptr - base);
|
print_label (stream, scope, op_ptr - base);
|
||||||
stream.puts (":;");
|
stream->puts (":;");
|
||||||
}
|
}
|
||||||
stream.printf ("/* %s */\n", get_DW_OP_name (op));
|
stream->printf ("/* %s */\n", get_DW_OP_name (op));
|
||||||
|
|
||||||
/* This is handy for debugging the generated code:
|
/* This is handy for debugging the generated code:
|
||||||
fprintf_filtered (stream, "if (__gdb_tos != %d) abort ();\n",
|
fprintf_filtered (stream, "if (__gdb_tos != %d) abort ();\n",
|
||||||
|
@ -905,7 +905,7 @@ do_compile_dwarf_expr_to_c (int indent, string_file &stream,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_OP_drop:
|
case DW_OP_drop:
|
||||||
fprintfi_filtered (indent, &stream, "--__gdb_tos;\n");
|
fprintfi_filtered (indent, stream, "--__gdb_tos;\n");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_OP_pick:
|
case DW_OP_pick:
|
||||||
|
@ -915,13 +915,13 @@ do_compile_dwarf_expr_to_c (int indent, string_file &stream,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_OP_swap:
|
case DW_OP_swap:
|
||||||
fprintfi_filtered (indent, &stream,
|
fprintfi_filtered (indent, stream,
|
||||||
"__gdb_tmp = __gdb_stack[__gdb_tos - 1];\n");
|
"__gdb_tmp = __gdb_stack[__gdb_tos - 1];\n");
|
||||||
fprintfi_filtered (indent, &stream,
|
fprintfi_filtered (indent, stream,
|
||||||
"__gdb_stack[__gdb_tos - 1] = "
|
"__gdb_stack[__gdb_tos - 1] = "
|
||||||
"__gdb_stack[__gdb_tos];\n");
|
"__gdb_stack[__gdb_tos];\n");
|
||||||
fprintfi_filtered (indent, &stream, ("__gdb_stack[__gdb_tos] = "
|
fprintfi_filtered (indent, stream, ("__gdb_stack[__gdb_tos] = "
|
||||||
"__gdb_tmp;\n"));
|
"__gdb_tmp;\n"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_OP_over:
|
case DW_OP_over:
|
||||||
|
@ -929,15 +929,15 @@ do_compile_dwarf_expr_to_c (int indent, string_file &stream,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_OP_rot:
|
case DW_OP_rot:
|
||||||
fprintfi_filtered (indent, &stream, ("__gdb_tmp = "
|
fprintfi_filtered (indent, stream, ("__gdb_tmp = "
|
||||||
"__gdb_stack[__gdb_tos];\n"));
|
"__gdb_stack[__gdb_tos];\n"));
|
||||||
fprintfi_filtered (indent, &stream,
|
fprintfi_filtered (indent, stream,
|
||||||
"__gdb_stack[__gdb_tos] = "
|
"__gdb_stack[__gdb_tos] = "
|
||||||
"__gdb_stack[__gdb_tos - 1];\n");
|
"__gdb_stack[__gdb_tos - 1];\n");
|
||||||
fprintfi_filtered (indent, &stream,
|
fprintfi_filtered (indent, stream,
|
||||||
"__gdb_stack[__gdb_tos - 1] = "
|
"__gdb_stack[__gdb_tos - 1] = "
|
||||||
"__gdb_stack[__gdb_tos -2];\n");
|
"__gdb_stack[__gdb_tos -2];\n");
|
||||||
fprintfi_filtered (indent, &stream, "__gdb_stack[__gdb_tos - 2] = "
|
fprintfi_filtered (indent, stream, "__gdb_stack[__gdb_tos - 2] = "
|
||||||
"__gdb_tmp;\n");
|
"__gdb_tmp;\n");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -959,7 +959,7 @@ do_compile_dwarf_expr_to_c (int indent, string_file &stream,
|
||||||
|
|
||||||
/* Cast to a pointer of the desired type, then
|
/* Cast to a pointer of the desired type, then
|
||||||
dereference. */
|
dereference. */
|
||||||
fprintfi_filtered (indent, &stream,
|
fprintfi_filtered (indent, stream,
|
||||||
"__gdb_stack[__gdb_tos] = "
|
"__gdb_stack[__gdb_tos] = "
|
||||||
"*((__gdb_int_%s *) "
|
"*((__gdb_int_%s *) "
|
||||||
"__gdb_stack[__gdb_tos]);\n",
|
"__gdb_stack[__gdb_tos]);\n",
|
||||||
|
@ -1085,19 +1085,19 @@ do_compile_dwarf_expr_to_c (int indent, string_file &stream,
|
||||||
case DW_OP_skip:
|
case DW_OP_skip:
|
||||||
offset = extract_signed_integer (op_ptr, 2, byte_order);
|
offset = extract_signed_integer (op_ptr, 2, byte_order);
|
||||||
op_ptr += 2;
|
op_ptr += 2;
|
||||||
fprintfi_filtered (indent, &stream, "goto ");
|
fprintfi_filtered (indent, stream, "goto ");
|
||||||
print_label (stream, scope, op_ptr + offset - base);
|
print_label (stream, scope, op_ptr + offset - base);
|
||||||
stream.puts (";\n");
|
stream->puts (";\n");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_OP_bra:
|
case DW_OP_bra:
|
||||||
offset = extract_signed_integer (op_ptr, 2, byte_order);
|
offset = extract_signed_integer (op_ptr, 2, byte_order);
|
||||||
op_ptr += 2;
|
op_ptr += 2;
|
||||||
fprintfi_filtered (indent, &stream,
|
fprintfi_filtered (indent, stream,
|
||||||
"if ((( " GCC_INTPTR
|
"if ((( " GCC_INTPTR
|
||||||
") __gdb_stack[__gdb_tos--]) != 0) goto ");
|
") __gdb_stack[__gdb_tos--]) != 0) goto ");
|
||||||
print_label (stream, scope, op_ptr + offset - base);
|
print_label (stream, scope, op_ptr + offset - base);
|
||||||
stream.puts (";\n");
|
stream->puts (";\n");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_OP_nop:
|
case DW_OP_nop:
|
||||||
|
@ -1108,15 +1108,15 @@ do_compile_dwarf_expr_to_c (int indent, string_file &stream,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintfi_filtered (indent, &stream, "%s = __gdb_stack[__gdb_tos];\n",
|
fprintfi_filtered (indent, stream, "%s = __gdb_stack[__gdb_tos];\n",
|
||||||
result_name);
|
result_name);
|
||||||
fprintfi_filtered (indent - 2, &stream, "}\n");
|
fprintfi_filtered (indent - 2, stream, "}\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See compile.h. */
|
/* See compile.h. */
|
||||||
|
|
||||||
void
|
void
|
||||||
compile_dwarf_expr_to_c (string_file &stream, const char *result_name,
|
compile_dwarf_expr_to_c (string_file *stream, const char *result_name,
|
||||||
struct symbol *sym, CORE_ADDR pc,
|
struct symbol *sym, CORE_ADDR pc,
|
||||||
struct gdbarch *arch, unsigned char *registers_used,
|
struct gdbarch *arch, unsigned char *registers_used,
|
||||||
unsigned int addr_size,
|
unsigned int addr_size,
|
||||||
|
@ -1131,7 +1131,7 @@ compile_dwarf_expr_to_c (string_file &stream, const char *result_name,
|
||||||
/* See compile.h. */
|
/* See compile.h. */
|
||||||
|
|
||||||
void
|
void
|
||||||
compile_dwarf_bounds_to_c (string_file &stream,
|
compile_dwarf_bounds_to_c (string_file *stream,
|
||||||
const char *result_name,
|
const char *result_name,
|
||||||
const struct dynamic_prop *prop,
|
const struct dynamic_prop *prop,
|
||||||
struct symbol *sym, CORE_ADDR pc,
|
struct symbol *sym, CORE_ADDR pc,
|
||||||
|
|
|
@ -141,7 +141,7 @@ compile_instance::compile_instance (struct gcc_base_context *gcc_fe,
|
||||||
/* See compile-internal.h. */
|
/* See compile-internal.h. */
|
||||||
|
|
||||||
bool
|
bool
|
||||||
compile_instance::get_cached_type (struct type *type, gcc_type &ret) const
|
compile_instance::get_cached_type (struct type *type, gcc_type *ret) const
|
||||||
{
|
{
|
||||||
struct type_map_instance inst, *found;
|
struct type_map_instance inst, *found;
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ compile_instance::get_cached_type (struct type *type, gcc_type &ret) const
|
||||||
found = (struct type_map_instance *) htab_find (m_type_map.get (), &inst);
|
found = (struct type_map_instance *) htab_find (m_type_map.get (), &inst);
|
||||||
if (found != NULL)
|
if (found != NULL)
|
||||||
{
|
{
|
||||||
ret = found->gcc_type_handle;
|
*ret = found->gcc_type_handle;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ extern void eval_compile_command (struct command_line *cmd,
|
||||||
PER_CU is the per-CU object used for looking up various other
|
PER_CU is the per-CU object used for looking up various other
|
||||||
things. */
|
things. */
|
||||||
|
|
||||||
extern void compile_dwarf_expr_to_c (string_file &stream,
|
extern void compile_dwarf_expr_to_c (string_file *stream,
|
||||||
const char *result_name,
|
const char *result_name,
|
||||||
struct symbol *sym,
|
struct symbol *sym,
|
||||||
CORE_ADDR pc,
|
CORE_ADDR pc,
|
||||||
|
@ -90,7 +90,7 @@ extern void compile_dwarf_expr_to_c (string_file &stream,
|
||||||
PER_CU is the per-CU object used for looking up various other
|
PER_CU is the per-CU object used for looking up various other
|
||||||
things. */
|
things. */
|
||||||
|
|
||||||
extern void compile_dwarf_bounds_to_c (string_file &stream,
|
extern void compile_dwarf_bounds_to_c (string_file *stream,
|
||||||
const char *result_name,
|
const char *result_name,
|
||||||
const struct dynamic_prop *prop,
|
const struct dynamic_prop *prop,
|
||||||
struct symbol *sym, CORE_ADDR pc,
|
struct symbol *sym, CORE_ADDR pc,
|
||||||
|
|
|
@ -2749,7 +2749,7 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop,
|
||||||
/* See dwarf2loc.h. */
|
/* See dwarf2loc.h. */
|
||||||
|
|
||||||
void
|
void
|
||||||
dwarf2_compile_property_to_c (string_file &stream,
|
dwarf2_compile_property_to_c (string_file *stream,
|
||||||
const char *result_name,
|
const char *result_name,
|
||||||
struct gdbarch *gdbarch,
|
struct gdbarch *gdbarch,
|
||||||
unsigned char *registers_used,
|
unsigned char *registers_used,
|
||||||
|
@ -4480,7 +4480,7 @@ locexpr_tracepoint_var_ref (struct symbol *symbol, struct agent_expr *ax,
|
||||||
/* symbol_computed_ops 'generate_c_location' method. */
|
/* symbol_computed_ops 'generate_c_location' method. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
locexpr_generate_c_location (struct symbol *sym, string_file &stream,
|
locexpr_generate_c_location (struct symbol *sym, string_file *stream,
|
||||||
struct gdbarch *gdbarch,
|
struct gdbarch *gdbarch,
|
||||||
unsigned char *registers_used,
|
unsigned char *registers_used,
|
||||||
CORE_ADDR pc, const char *result_name)
|
CORE_ADDR pc, const char *result_name)
|
||||||
|
@ -4690,7 +4690,7 @@ loclist_tracepoint_var_ref (struct symbol *symbol, struct agent_expr *ax,
|
||||||
/* symbol_computed_ops 'generate_c_location' method. */
|
/* symbol_computed_ops 'generate_c_location' method. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
loclist_generate_c_location (struct symbol *sym, string_file &stream,
|
loclist_generate_c_location (struct symbol *sym, string_file *stream,
|
||||||
struct gdbarch *gdbarch,
|
struct gdbarch *gdbarch,
|
||||||
unsigned char *registers_used,
|
unsigned char *registers_used,
|
||||||
CORE_ADDR pc, const char *result_name)
|
CORE_ADDR pc, const char *result_name)
|
||||||
|
|
|
@ -156,7 +156,7 @@ int dwarf2_evaluate_property (const struct dynamic_prop *prop,
|
||||||
evaluated.
|
evaluated.
|
||||||
SYM the originating symbol, used for error reporting. */
|
SYM the originating symbol, used for error reporting. */
|
||||||
|
|
||||||
void dwarf2_compile_property_to_c (string_file &stream,
|
void dwarf2_compile_property_to_c (string_file *stream,
|
||||||
const char *result_name,
|
const char *result_name,
|
||||||
struct gdbarch *gdbarch,
|
struct gdbarch *gdbarch,
|
||||||
unsigned char *registers_used,
|
unsigned char *registers_used,
|
||||||
|
|
|
@ -983,7 +983,7 @@ struct symbol_computed_ops
|
||||||
The generated C code must assign the location to a local
|
The generated C code must assign the location to a local
|
||||||
variable; this variable's name is RESULT_NAME. */
|
variable; this variable's name is RESULT_NAME. */
|
||||||
|
|
||||||
void (*generate_c_location) (struct symbol *symbol, string_file &stream,
|
void (*generate_c_location) (struct symbol *symbol, string_file *stream,
|
||||||
struct gdbarch *gdbarch,
|
struct gdbarch *gdbarch,
|
||||||
unsigned char *registers_used,
|
unsigned char *registers_used,
|
||||||
CORE_ADDR pc, const char *result_name);
|
CORE_ADDR pc, const char *result_name);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue