GDB (xrefs)
Defines | Enumerations | Functions | Variables
/home/stan/gdb/src/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 "c-lang.h"
#include "valprint.h"
#include "macroscope.h"
#include "gdb_assert.h"
#include "charset.h"
#include "gdb_string.h"
#include "demangle.h"
#include "cp-abi.h"
#include "cp-support.h"
#include "gdb_obstack.h"
#include <ctype.h>
#include "exceptions.h"
#include "gdbcore.h"

Go to the source code of this file.

Defines

#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

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

Define Documentation

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

Definition at line 450 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 743 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 852 of file c-lang.c.


Function Documentation

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

Definition at line 148 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 465 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 434 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 409 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 367 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 878 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 393 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   
) [read]
static void parse_one_string ( struct obstack *  output,
char *  data,
int  len,
const char *  dest_charset,
struct type type 
) [static]

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

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

Referenced by evaluate_subexp_c().


Variable Documentation

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

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

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

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

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

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines