GDB (xrefs)
|
#include "defs.h"
#include "gdbsupport/gdb_obstack.h"
#include "gdbsupport/pathstuff.h"
#include "splay-tree.h"
#include "filenames.h"
#include "symtab.h"
#include "symfile.h"
#include "objfiles.h"
#include "macrotab.h"
#include "bcache.h"
#include "complaints.h"
#include "macroexp.h"
Go to the source code of this file.
Classes | |
struct | macro_table |
struct | macro_key |
struct | macro_for_each_data |
Functions | |
static void * | macro_alloc (int size, struct macro_table *t) |
static void | macro_free (void *object, struct macro_table *t) |
static const void * | macro_bcache (struct macro_table *t, const void *addr, int len) |
static const char * | macro_bcache_str (struct macro_table *t, const char *s) |
static void | macro_bcache_free (struct macro_table *t, void *obj) |
static int | inclusion_depth (struct macro_source_file *file) |
static int | compare_locations (struct macro_source_file *file1, int line1, struct macro_source_file *file2, int line2) |
static int | key_compare (struct macro_key *key, const char *name, struct macro_source_file *file, int line) |
static int | macro_tree_compare (splay_tree_key untyped_key1, splay_tree_key untyped_key2) |
static struct macro_key * | new_macro_key (struct macro_table *t, const char *name, struct macro_source_file *file, int line) |
static void | macro_tree_delete_key (void *untyped_key) |
static struct macro_source_file * | new_source_file (struct macro_table *t, const char *filename) |
static void | free_macro_source_file (struct macro_source_file *src) |
struct macro_source_file * | macro_set_main (struct macro_table *t, const char *filename) |
struct macro_source_file * | macro_main (struct macro_table *t) |
void | macro_allow_redefinitions (struct macro_table *t) |
struct macro_source_file * | macro_include (struct macro_source_file *source, int line, const char *included) |
struct macro_source_file * | macro_lookup_inclusion (struct macro_source_file *source, const char *name) |
static struct macro_definition * | new_macro_definition (struct macro_table *t, enum macro_kind kind, int argc, const char **argv, const char *replacement) |
static void | macro_tree_delete_value (void *untyped_definition) |
static splay_tree_node | find_definition (const char *name, struct macro_source_file *file, int line) |
static struct macro_key * | check_for_redefinition (struct macro_source_file *source, int line, const char *name, enum macro_kind kind, int argc, const char **argv, const char *replacement) |
static void | macro_define_internal (struct macro_source_file *source, int line, const char *name, enum macro_kind kind, int argc, const char **argv, const char *replacement) |
static void | macro_define_object_internal (struct macro_source_file *source, int line, const char *name, const char *replacement, enum macro_special_kind special_kind) |
void | macro_define_object (struct macro_source_file *source, int line, const char *name, const char *replacement) |
void | macro_define_special (struct macro_table *table) |
void | macro_define_function (struct macro_source_file *source, int line, const char *name, int argc, const char **argv, const char *replacement) |
void | macro_undef (struct macro_source_file *source, int line, const char *name) |
static struct macro_definition * | fixup_definition (const char *filename, int line, struct macro_definition *def) |
struct macro_definition * | macro_lookup_definition (struct macro_source_file *source, int line, const char *name) |
struct macro_source_file * | macro_definition_location (struct macro_source_file *source, int line, const char *name, int *definition_line) |
static int | foreach_macro (splay_tree_node node, void *arg) |
void | macro_for_each (struct macro_table *table, gdb::function_view< macro_callback_fn > fn) |
static int | foreach_macro_in_scope (splay_tree_node node, void *info) |
void | macro_for_each_in_scope (struct macro_source_file *file, int line, gdb::function_view< macro_callback_fn > fn) |
struct macro_table * | new_macro_table (struct obstack *obstack, gdb::bcache *b, struct compunit_symtab *cust) |
void | free_macro_table (struct macro_table *table) |
std::string | macro_source_fullname (struct macro_source_file *file) |
|
static |
Definition at line 685 of file macrotab.c.
References macro_definition::argc, macro_definition::argv, complaint, find_definition(), macro_definition::kind, macro_function_like, macro_source_fullname(), name, macro_definition::replacement, macro_key::start_file, and macro_key::start_line.
Referenced by macro_define_internal().
|
static |
Definition at line 216 of file macrotab.c.
References macro_source_file::included_at_line, macro_source_file::included_by, and inclusion_depth().
Referenced by find_definition(), foreach_macro_in_scope(), and key_compare().
|
static |
Definition at line 624 of file macrotab.c.
References compare_locations(), macro_table::definitions, macro_key::end_file, macro_key::end_line, name, macro_key::name, and query().
Referenced by check_for_redefinition(), macro_definition_location(), macro_lookup_definition(), and macro_undef().
|
static |
Definition at line 884 of file macrotab.c.
References macro_definition::argc, macro_definition::kind, macro_FILE, macro_LINE, macro_object_like, macro_stringify(), and macro_definition::replacement.
Referenced by foreach_macro(), foreach_macro_in_scope(), and macro_lookup_definition().
|
static |
Definition at line 954 of file macrotab.c.
References fixup_definition(), macro_for_each_data::fn, macro_source_fullname(), macro_key::name, macro_key::start_file, and macro_key::start_line.
Referenced by macro_for_each().
|
static |
Definition at line 982 of file macrotab.c.
References compare_locations(), macro_key::end_file, macro_key::end_line, macro_for_each_data::file, fixup_definition(), macro_for_each_data::fn, macro_for_each_data::line, macro_source_fullname(), macro_key::name, macro_key::start_file, and macro_key::start_line.
Referenced by macro_for_each_in_scope().
|
static |
Definition at line 403 of file macrotab.c.
References macro_source_file::filename, free_macro_source_file(), macro_source_file::includes, macro_bcache_free(), macro_free(), macro_source_file::next_included, and macro_source_file::table.
Referenced by free_macro_source_file(), and free_macro_table().
void free_macro_table | ( | struct macro_table * | table | ) |
Definition at line 1053 of file macrotab.c.
References macro_table::definitions, free_macro_source_file(), and macro_table::main_source.
Referenced by buildsym_compunit::~buildsym_compunit().
|
static |
Definition at line 189 of file macrotab.c.
Referenced by compare_locations(), and macro_lookup_inclusion().
|
static |
Definition at line 321 of file macrotab.c.
References compare_locations(), name, macro_key::name, macro_key::start_file, and macro_key::start_line.
Referenced by macro_define_internal(), and macro_tree_compare().
|
static |
Definition at line 87 of file macrotab.c.
References macro_table::obstack, size, and xmalloc().
Referenced by new_macro_definition(), new_macro_key(), new_macro_table(), and new_source_file().
void macro_allow_redefinitions | ( | struct macro_table * | t | ) |
Definition at line 443 of file macrotab.c.
References macro_table::obstack, and macro_table::redef_ok.
|
static |
Definition at line 114 of file macrotab.c.
References macro_table::bcache, gdb::bcache::insert(), and xmalloc().
Referenced by macro_bcache_str(), and new_macro_definition().
|
static |
Definition at line 141 of file macrotab.c.
References macro_table::bcache, and xfree().
Referenced by free_macro_source_file(), macro_tree_delete_key(), and macro_tree_delete_value().
|
static |
Definition at line 132 of file macrotab.c.
References macro_bcache().
Referenced by new_macro_definition(), new_macro_key(), and new_source_file().
void macro_define_function | ( | struct macro_source_file * | source, |
int | line, | ||
const char * | name, | ||
int | argc, | ||
const char ** | argv, | ||
const char * | replacement ) |
Definition at line 815 of file macrotab.c.
References macro_definition::argc, macro_definition::argv, macro_define_internal(), macro_function_like, name, and macro_definition::replacement.
Referenced by macro_define_command(), and parse_macro_definition().
|
static |
Definition at line 749 of file macrotab.c.
References macro_definition::argc, macro_definition::argv, check_for_redefinition(), macro_table::definitions, key_compare(), macro_definition::kind, name, new_macro_definition(), new_macro_key(), macro_table::redef_ok, and macro_definition::replacement.
Referenced by macro_define_function(), and macro_define_object_internal().
void macro_define_object | ( | struct macro_source_file * | source, |
int | line, | ||
const char * | name, | ||
const char * | replacement ) |
Definition at line 796 of file macrotab.c.
References macro_define_object_internal(), macro_ordinary, name, and macro_definition::replacement.
Referenced by macro_define_command(), and parse_macro_definition().
|
static |
Definition at line 785 of file macrotab.c.
References macro_define_internal(), macro_object_like, name, and macro_definition::replacement.
Referenced by macro_define_object(), and macro_define_special().
void macro_define_special | ( | struct macro_table * | table | ) |
Definition at line 806 of file macrotab.c.
References macro_define_object_internal(), macro_FILE, macro_LINE, macro_table::main_source, and macro_definition::table.
Referenced by macro_start_file().
struct macro_source_file * macro_definition_location | ( | struct macro_source_file * | source, |
int | line, | ||
const char * | name, | ||
int * | definition_line ) |
Definition at line 923 of file macrotab.c.
References find_definition(), name, macro_key::start_file, and macro_key::start_line.
Referenced by info_macro_command().
void macro_for_each | ( | struct macro_table * | table, |
gdb::function_view< macro_callback_fn > | fn ) |
Definition at line 970 of file macrotab.c.
References macro_table::definitions, macro_for_each_data::file, macro_for_each_data::fn, foreach_macro(), and macro_for_each_data::line.
Referenced by default_collect_symbol_completion_matches_break_on(), info_macro_command(), and macro_list_command().
void macro_for_each_in_scope | ( | struct macro_source_file * | file, |
int | line, | ||
gdb::function_view< macro_callback_fn > | fn ) |
Definition at line 1005 of file macrotab.c.
References macro_table::definitions, macro_for_each_data::file, macro_for_each_data::fn, foreach_macro_in_scope(), macro_for_each_data::line, and macro_source_file::table.
Referenced by default_collect_symbol_completion_matches_break_on(), info_macros_command(), and write_macro_definitions().
|
static |
Definition at line 97 of file macrotab.c.
References macro_table::obstack, and xfree().
Referenced by free_macro_source_file(), macro_tree_delete_key(), macro_tree_delete_value(), and new_macro_table().
struct macro_source_file * macro_include | ( | struct macro_source_file * | source, |
int | line, | ||
const char * | included ) |
Definition at line 451 of file macrotab.c.
References complaint, macro_source_file::included_at_line, macro_source_file::included_by, macro_source_fullname(), new_source_file(), and macro_source_file::next_included.
Referenced by macro_start_file().
struct macro_definition * macro_lookup_definition | ( | struct macro_source_file * | source, |
int | line, | ||
const char * | name ) |
Definition at line 906 of file macrotab.c.
References find_definition(), fixup_definition(), macro_source_fullname(), and name.
Referenced by info_macro_command(), and standard_macro_lookup().
struct macro_source_file * macro_lookup_inclusion | ( | struct macro_source_file * | source, |
const char * | name ) |
Definition at line 508 of file macrotab.c.
References inclusion_depth(), macro_lookup_inclusion(), name, and macro_source_file::next_included.
Referenced by macro_lookup_inclusion(), and sal_macro_scope().
struct macro_source_file * macro_main | ( | struct macro_table * | t | ) |
Definition at line 434 of file macrotab.c.
References macro_table::main_source.
Referenced by macro_define_command(), macro_undef_command(), sal_macro_scope(), standard_macro_lookup(), and user_macro_scope().
struct macro_source_file * macro_set_main | ( | struct macro_table * | t, |
const char * | filename ) |
Definition at line 420 of file macrotab.c.
References macro_source_file::filename, macro_table::main_source, and new_source_file().
Referenced by macro_start_file().
std::string macro_source_fullname | ( | struct macro_source_file * | file | ) |
Definition at line 1065 of file macrotab.c.
Referenced by check_for_redefinition(), foreach_macro(), foreach_macro_in_scope(), macro_include(), macro_lookup_definition(), macro_undef(), and show_pp_source_pos().
|
static |
Definition at line 337 of file macrotab.c.
References key_compare(), macro_key::name, macro_key::start_file, and macro_key::start_line.
Referenced by new_macro_table().
|
static |
Definition at line 370 of file macrotab.c.
References macro_bcache_free(), macro_free(), macro_key::name, and macro_key::table.
Referenced by new_macro_table().
|
static |
Definition at line 602 of file macrotab.c.
References macro_definition::argc, macro_definition::argv, macro_definition::kind, macro_bcache_free(), macro_free(), macro_function_like, macro_definition::replacement, and macro_definition::table.
Referenced by new_macro_table().
void macro_undef | ( | struct macro_source_file * | source, |
int | line, | ||
const char * | name ) |
Definition at line 826 of file macrotab.c.
References complaint, macro_key::end_file, macro_key::end_line, find_definition(), macro_source_fullname(), name, macro_key::start_file, and macro_key::start_line.
Referenced by dwarf_decode_macro_bytes(), and macro_undef_command().
|
static |
Definition at line 549 of file macrotab.c.
References macro_definition::argc, macro_definition::argv, macro_definition::kind, macro_alloc(), macro_bcache(), macro_bcache_str(), macro_function_like, macro_definition::replacement, and macro_definition::table.
Referenced by macro_define_internal().
|
static |
Definition at line 351 of file macrotab.c.
References macro_key::end_file, macro_alloc(), macro_bcache_str(), name, macro_key::name, macro_key::start_file, macro_key::start_line, and macro_key::table.
Referenced by macro_define_internal().
struct macro_table * new_macro_table | ( | struct obstack * | obstack, |
gdb::bcache * | b, | ||
struct compunit_symtab * | cust ) |
Definition at line 1023 of file macrotab.c.
References macro_table::bcache, macro_table::compunit_symtab, macro_table::definitions, macro_alloc(), macro_free(), macro_tree_compare(), macro_tree_delete_key(), macro_tree_delete_value(), macro_table::main_source, macro_table::obstack, and macro_table::redef_ok.
Referenced by buildsym_compunit::get_macro_table().
|
static |
Definition at line 385 of file macrotab.c.
References f(), macro_source_file::filename, macro_alloc(), and macro_bcache_str().
Referenced by macro_include(), and macro_set_main().