GDB (xrefs)
Macros | Enumerations | Functions | Variables
/tmp/gdb-7.10/gdb/c-lang.c File Reference
#include "defs.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "expression.h"
#include "parser-defs.h"
#include "language.h"
#include "varobj.h"
#include "c-lang.h"
#include "valprint.h"
#include "macroscope.h"
#include "charset.h"
#include "demangle.h"
#include "cp-abi.h"
#include "cp-support.h"
#include "gdb_obstack.h"
#include <ctype.h>
#include "gdbcore.h"

Go to the source code of this file.

Macros

#define ADVANCE
 

Enumerations

enum  c_primitive_types {
  c_primitive_type_int, c_primitive_type_long, c_primitive_type_short, c_primitive_type_char,
  c_primitive_type_float, c_primitive_type_double, c_primitive_type_void, c_primitive_type_long_long,
  c_primitive_type_signed_char, c_primitive_type_unsigned_char, c_primitive_type_unsigned_short, c_primitive_type_unsigned_int,
  c_primitive_type_unsigned_long, c_primitive_type_unsigned_long_long, c_primitive_type_long_double, c_primitive_type_complex,
  c_primitive_type_double_complex, c_primitive_type_decfloat, c_primitive_type_decdouble, c_primitive_type_declong,
  nr_c_primitive_types
}
 
enum  cplus_primitive_types {
  cplus_primitive_type_int, cplus_primitive_type_long, cplus_primitive_type_short, cplus_primitive_type_char,
  cplus_primitive_type_float, cplus_primitive_type_double, cplus_primitive_type_void, cplus_primitive_type_long_long,
  cplus_primitive_type_signed_char, cplus_primitive_type_unsigned_char, cplus_primitive_type_unsigned_short, cplus_primitive_type_unsigned_int,
  cplus_primitive_type_unsigned_long, cplus_primitive_type_unsigned_long_long, cplus_primitive_type_long_double, cplus_primitive_type_complex,
  cplus_primitive_type_double_complex, cplus_primitive_type_bool, cplus_primitive_type_decfloat, cplus_primitive_type_decdouble,
  cplus_primitive_type_declong, nr_cplus_primitive_types
}
 

Functions

void _initialize_c_language (void)
 
static const char * charset_for_string_type (enum c_string_type str_type, struct gdbarch *gdbarch)
 
static enum c_string_type classify_type (struct type *elttype, struct gdbarch *gdbarch, const char **encoding)
 
void c_emit_char (int c, struct type *type, struct ui_file *stream, int quoter)
 
void c_printchar (int c, struct type *type, struct ui_file *stream)
 
void c_printstr (struct ui_file *stream, struct type *type, const gdb_byte *string, unsigned int length, const char *user_encoding, int force_ellipses, const struct value_print_options *options)
 
void c_get_string (struct value *value, gdb_byte **buffer, int *length, struct type **char_type, const char **charset)
 
static char * convert_ucn (char *p, char *limit, const char *dest_charset, struct obstack *output, int length)
 
static void emit_numeric_character (struct type *type, unsigned long value, struct obstack *output)
 
static char * convert_octal (struct type *type, char *p, char *limit, struct obstack *output)
 
static char * convert_hex (struct type *type, char *p, char *limit, struct obstack *output)
 
static char * convert_escape (struct type *type, const char *dest_charset, char *p, char *limit, struct obstack *output)
 
static void parse_one_string (struct obstack *output, char *data, int len, const char *dest_charset, struct type *type)
 
struct valueevaluate_subexp_c (struct type *expect_type, struct expression *exp, int *pos, enum noside noside)
 
void c_language_arch_info (struct gdbarch *gdbarch, struct language_arch_info *lai)
 
static void cplus_language_arch_info (struct gdbarch *gdbarch, struct language_arch_info *lai)
 

Variables

const struct op_print c_op_print_tab []
 
const struct exp_descriptor exp_descriptor_c
 
const struct language_defn c_language_defn
 
const struct language_defn cplus_language_defn
 
const struct language_defn asm_language_defn
 
const struct language_defn minimal_language_defn
 

Macro Definition Documentation

#define ADVANCE
Value:
do { \
++p; \
if (p == limit) \
error (_("Malformed escape sequence")); \
} while (0)
#define _(String)
Definition: gdb_locale.h:40

Definition at line 467 of file c-lang.c.

Referenced by convert_escape().

Enumeration Type Documentation

Enumerator
c_primitive_type_int 
c_primitive_type_long 
c_primitive_type_short 
c_primitive_type_char 
c_primitive_type_float 
c_primitive_type_double 
c_primitive_type_void 
c_primitive_type_long_long 
c_primitive_type_signed_char 
c_primitive_type_unsigned_char 
c_primitive_type_unsigned_short 
c_primitive_type_unsigned_int 
c_primitive_type_unsigned_long 
c_primitive_type_unsigned_long_long 
c_primitive_type_long_double 
c_primitive_type_complex 
c_primitive_type_double_complex 
c_primitive_type_decfloat 
c_primitive_type_decdouble 
c_primitive_type_declong 
nr_c_primitive_types 

Definition at line 760 of file c-lang.c.

Enumerator
cplus_primitive_type_int 
cplus_primitive_type_long 
cplus_primitive_type_short 
cplus_primitive_type_char 
cplus_primitive_type_float 
cplus_primitive_type_double 
cplus_primitive_type_void 
cplus_primitive_type_long_long 
cplus_primitive_type_signed_char 
cplus_primitive_type_unsigned_char 
cplus_primitive_type_unsigned_short 
cplus_primitive_type_unsigned_int 
cplus_primitive_type_unsigned_long 
cplus_primitive_type_unsigned_long_long 
cplus_primitive_type_long_double 
cplus_primitive_type_complex 
cplus_primitive_type_double_complex 
cplus_primitive_type_bool 
cplus_primitive_type_decfloat 
cplus_primitive_type_decdouble 
cplus_primitive_type_declong 
nr_cplus_primitive_types 

Definition at line 873 of file c-lang.c.

Function Documentation

void _initialize_c_language ( void  )

Definition at line 1096 of file c-lang.c.

References add_language().

void c_emit_char ( int  c,
struct type type,
struct ui_file stream,
int  quoter 
)

Definition at line 146 of file c-lang.c.

References classify_type(), encoding, generic_emit_char(), and get_type_arch().

void c_get_string ( struct value value,
gdb_byte **  buffer,
int length,
struct type **  char_type,
const char **  charset 
)
void c_language_arch_info ( struct gdbarch gdbarch,
struct language_arch_info lai 
)
void c_printchar ( int  c,
struct type type,
struct ui_file stream 
)
void c_printstr ( struct ui_file stream,
struct type type,
const gdb_byte string,
unsigned int  length,
const char *  user_encoding,
int  force_ellipses,
const struct value_print_options options 
)
static const char* charset_for_string_type ( enum c_string_type  str_type,
struct gdbarch gdbarch 
)
static
static enum c_string_type classify_type ( struct type elttype,
struct gdbarch gdbarch,
const char **  encoding 
)
static
static char* convert_escape ( struct type type,
const char *  dest_charset,
char *  p,
char *  limit,
struct obstack *  output 
)
static

Definition at line 482 of file c-lang.c.

References _, ADVANCE, convert_hex(), convert_octal(), convert_ucn(), error(), and type::length.

Referenced by parse_one_string().

static char* convert_hex ( struct type type,
char *  p,
char *  limit,
struct obstack *  output 
)
static

Definition at line 451 of file c-lang.c.

References emit_numeric_character(), and host_hex_value().

Referenced by convert_escape().

static char* convert_octal ( struct type type,
char *  p,
char *  limit,
struct obstack *  output 
)
static

Definition at line 426 of file c-lang.c.

References emit_numeric_character(), and host_hex_value().

Referenced by convert_escape().

static char* convert_ucn ( char *  p,
char *  limit,
const char *  dest_charset,
struct obstack *  output,
int  length 
)
static

Definition at line 384 of file c-lang.c.

References convert_between_encodings(), host_hex_value(), and translit_none.

Referenced by convert_escape().

static void cplus_language_arch_info ( struct gdbarch gdbarch,
struct language_arch_info lai 
)
static

Definition at line 899 of file c-lang.c.

References language_arch_info::bool_type_default, language_arch_info::bool_type_symbol, builtin_type::builtin_bool, builtin_type::builtin_char, builtin_type::builtin_complex, builtin_type::builtin_decdouble, builtin_type::builtin_decfloat, builtin_type::builtin_declong, builtin_type::builtin_double, builtin_type::builtin_double_complex, builtin_type::builtin_float, builtin_type::builtin_int, builtin_type::builtin_long, builtin_type::builtin_long_double, builtin_type::builtin_long_long, builtin_type::builtin_short, builtin_type::builtin_signed_char, builtin_type(), builtin_type::builtin_unsigned_char, builtin_type::builtin_unsigned_int, builtin_type::builtin_unsigned_long, builtin_type::builtin_unsigned_long_long, builtin_type::builtin_unsigned_short, builtin_type::builtin_void, cplus_primitive_type_bool, cplus_primitive_type_char, cplus_primitive_type_complex, cplus_primitive_type_decdouble, cplus_primitive_type_decfloat, cplus_primitive_type_declong, cplus_primitive_type_double, cplus_primitive_type_double_complex, cplus_primitive_type_float, cplus_primitive_type_int, cplus_primitive_type_long, cplus_primitive_type_long_double, cplus_primitive_type_long_long, cplus_primitive_type_short, cplus_primitive_type_signed_char, cplus_primitive_type_unsigned_char, cplus_primitive_type_unsigned_int, cplus_primitive_type_unsigned_long, cplus_primitive_type_unsigned_long_long, cplus_primitive_type_unsigned_short, cplus_primitive_type_void, GDBARCH_OBSTACK_CALLOC, nr_cplus_primitive_types, language_arch_info::primitive_type_vector, and language_arch_info::string_char_type.

static void emit_numeric_character ( struct type type,
unsigned long  value,
struct obstack *  output 
)
static

Definition at line 410 of file c-lang.c.

References pack_long(), and TYPE_LENGTH.

Referenced by convert_hex(), and convert_octal().

struct value* evaluate_subexp_c ( struct type expect_type,
struct expression exp,
int pos,
enum noside noside   
)
static void parse_one_string ( struct obstack *  output,
char *  data,
int  len,
const char *  dest_charset,
struct type type 
)
static

Definition at line 535 of file c-lang.c.

References convert_between_encodings(), convert_escape(), host_charset(), len, and translit_none.

Referenced by evaluate_subexp_c().

Variable Documentation

const struct language_defn asm_language_defn

Definition at line 1000 of file c-lang.c.

const struct language_defn c_language_defn

Definition at line 828 of file c-lang.c.

const struct op_print c_op_print_tab[]

Definition at line 725 of file c-lang.c.

const struct language_defn cplus_language_defn

Definition at line 955 of file c-lang.c.

const struct exp_descriptor exp_descriptor_c
Initial value:
=
{
}
struct value * evaluate_subexp_c(struct type *expect_type, struct expression *exp, int *pos, enum noside noside)
Definition: c-lang.c:566
int dump_subexp_body_standard(struct expression *exp, struct ui_file *stream, int elt)
Definition: expprint.c:762
char * op_name_standard(enum exp_opcode opcode)
Definition: expprint.c:662
void print_subexp_standard(struct expression *exp, int *pos, struct ui_file *stream, enum precedence prec)
Definition: expprint.c:58
int operator_check_standard(struct expression *exp, int pos, int(*objfile_func)(struct objfile *objfile, void *data), void *data)
Definition: parse.c:1782
void operator_length_standard(const struct expression *expr, int endpos, int *oplenp, int *argsp)
Definition: parse.c:859

Definition at line 818 of file c-lang.c.

const struct language_defn minimal_language_defn

Definition at line 1050 of file c-lang.c.