GDB (xrefs)
Classes | Functions
/home/stan/gdb/src/gdb/macrotab.c File Reference
#include "defs.h"
#include "gdb_obstack.h"
#include "splay-tree.h"
#include "filenames.h"
#include "symtab.h"
#include "symfile.h"
#include "objfiles.h"
#include "macrotab.h"
#include "gdb_assert.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_keynew_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_filenew_source_file (struct macro_table *t, const char *filename)
static void free_macro_source_file (struct macro_source_file *src)
struct macro_source_filemacro_set_main (struct macro_table *t, const char *filename)
struct macro_source_filemacro_main (struct macro_table *t)
void macro_allow_redefinitions (struct macro_table *t)
struct macro_source_filemacro_include (struct macro_source_file *source, int line, const char *included)
struct macro_source_filemacro_lookup_inclusion (struct macro_source_file *source, const char *name)
static struct macro_definitionnew_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_keycheck_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_object_internal (struct macro_source_file *source, int line, const char *name, const char *replacement, enum macro_special_kind 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_definitionfixup_definition (const char *filename, int line, struct macro_definition *def)
struct macro_definitionmacro_lookup_definition (struct macro_source_file *source, int line, const char *name)
struct macro_source_filemacro_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, macro_callback_fn fn, void *user_data)
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, macro_callback_fn fn, void *user_data)
struct macro_tablenew_macro_table (struct obstack *obstack, struct bcache *b, const char *comp_dir)
void free_macro_table (struct macro_table *table)
char * macro_source_fullname (struct macro_source_file *file)

Function Documentation

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, read]
static int compare_locations ( struct macro_source_file file1,
int  line1,
struct macro_source_file file2,
int  line2 
) [static]
static splay_tree_node find_definition ( const char *  name,
struct macro_source_file file,
int  line 
) [static]
static struct macro_definition* fixup_definition ( const char *  filename,
int  line,
struct macro_definition def 
) [static, read]
static int foreach_macro ( splay_tree_node  node,
void *  arg 
) [static]
static int foreach_macro_in_scope ( splay_tree_node  node,
void *  info 
) [static]
static void free_macro_source_file ( struct macro_source_file src) [static]
void free_macro_table ( struct macro_table table)
static int inclusion_depth ( struct macro_source_file file) [static]

Definition at line 190 of file macrotab.c.

References macro_source_file::included_by.

Referenced by compare_locations(), and macro_lookup_inclusion().

static int key_compare ( struct macro_key key,
const char *  name,
struct macro_source_file file,
int  line 
) [static]
static void* macro_alloc ( int  size,
struct macro_table t 
) [static]

Definition at line 88 of file macrotab.c.

References macro_table::obstack, 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 gdb_assert, macro_table::obstack, and macro_table::redef_ok.

Referenced by _initialize_macroscope().

static const void* macro_bcache ( struct macro_table t,
const void *  addr,
int  len 
) [static]

Definition at line 115 of file macrotab.c.

References macro_table::bcache, bcache(), memcpy(), and xmalloc().

Referenced by macro_bcache_str(), and new_macro_definition().

static void macro_bcache_free ( struct macro_table t,
void *  obj 
) [static]

Definition at line 142 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 const char* macro_bcache_str ( struct macro_table t,
const char *  s 
) [static]

Definition at line 133 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 
)
void macro_define_object ( struct macro_source_file source,
int  line,
const char *  name,
const char *  replacement 
)

Definition at line 783 of file macrotab.c.

References macro_define_object_internal(), and macro_ordinary.

Referenced by macro_define_command(), and parse_macro_definition().

static void macro_define_object_internal ( struct macro_source_file source,
int  line,
const char *  name,
const char *  replacement,
enum macro_special_kind  kind 
) [static]
void macro_define_special ( struct macro_table table)

Definition at line 793 of file macrotab.c.

References macro_define_object_internal(), macro_FILE, macro_LINE, and macro_table::main_source.

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 
) [read]

Definition at line 943 of file macrotab.c.

References find_definition(), macro_key::start_file, and macro_key::start_line.

Referenced by info_macro_command().

void macro_for_each ( struct macro_table table,
macro_callback_fn  fn,
void *  user_data 
)
void macro_for_each_in_scope ( struct macro_source_file file,
int  line,
macro_callback_fn  fn,
void *  user_data 
)
static void macro_free ( void *  object,
struct macro_table t 
) [static]
struct macro_source_file* macro_include ( struct macro_source_file source,
int  line,
const char *  included 
) [read]
struct macro_definition* macro_lookup_definition ( struct macro_source_file source,
int  line,
const char *  name 
) [read]
struct macro_source_file* macro_lookup_inclusion ( struct macro_source_file source,
const char *  name 
) [read]
struct macro_source_file* macro_main ( struct macro_table t) [read]
struct macro_source_file* macro_set_main ( struct macro_table t,
const char *  filename 
) [read]

Definition at line 420 of file macrotab.c.

References gdb_assert, macro_table::main_source, and new_source_file().

Referenced by _initialize_macroscope(), and macro_start_file().

char* macro_source_fullname ( struct macro_source_file file)
static int macro_tree_compare ( splay_tree_key  untyped_key1,
splay_tree_key  untyped_key2 
) [static]

Definition at line 338 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 void macro_tree_delete_key ( void *  untyped_key) [static]

Definition at line 371 of file macrotab.c.

References macro_bcache_free(), macro_free(), macro_key::name, and macro_key::table.

Referenced by new_macro_table().

static void macro_tree_delete_value ( void *  untyped_definition) [static]
void macro_undef ( struct macro_source_file source,
int  line,
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, read]
static struct macro_key* new_macro_key ( struct macro_table t,
const char *  name,
struct macro_source_file file,
int  line 
) [static, read]
struct macro_table* new_macro_table ( struct obstack *  obstack,
struct bcache b,
const char *  comp_dir 
) [read]
static struct macro_source_file* new_source_file ( struct macro_table t,
const char *  filename 
) [static, read]
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines