GDB (xrefs)
|
#include "defs.h"
#include "gdbsupport/preprocessor.h"
#include "gdbtypes.h"
#include "compile-internal.h"
#include "compile-cplus.h"
#include "gdbsupport/gdb_assert.h"
#include "symtab.h"
#include "source.h"
#include "cp-support.h"
#include "cp-abi.h"
#include "objfiles.h"
#include "block.h"
#include "gdbcmd.h"
#include "c-lang.h"
#include "compile-c.h"
#include <algorithm>
#include "gcc-cp-fe.def"
Go to the source code of this file.
Macros | |
#define | FORWARD(OP, ...) m_context->cp_ops->OP(m_context, ##__VA_ARGS__) |
#define | OUTPUT_DEBUG_RESULT(R) |
#define | GCC_METHOD0(R, N) |
#define | GCC_METHOD1(R, N, A) |
#define | GCC_METHOD2(R, N, A, B) |
#define | GCC_METHOD3(R, N, A, B, C) |
#define | GCC_METHOD4(R, N, A, B, C, D) |
#define | GCC_METHOD5(R, N, A, B, C, D, E) |
#define | GCC_METHOD7(R, N, A, B, C, D, E, F, G) |
Variables | |
static bool | debug_compile_cplus_types = false |
static bool | debug_compile_cplus_scopes = false |
Definition at line 1270 of file compile-cplus-types.c.
#define GCC_METHOD0 | ( | R, | |
N ) |
Definition at line 1279 of file compile-cplus-types.c.
Definition at line 1288 of file compile-cplus-types.c.
Definition at line 1297 of file compile-cplus-types.c.
Definition at line 1306 of file compile-cplus-types.c.
Definition at line 1315 of file compile-cplus-types.c.
Definition at line 1324 of file compile-cplus-types.c.
Definition at line 1333 of file compile-cplus-types.c.
#define OUTPUT_DEBUG_RESULT | ( | R | ) |
Definition at line 1271 of file compile-cplus-types.c.
|
static |
Definition at line 109 of file compile-cplus-types.c.
References printf_unfiltered().
void _initialize_compile_cplus_types | ( | ) |
Definition at line 1400 of file compile-cplus-types.c.
Referenced by initialize_all_files().
|
static |
Definition at line 452 of file compile-cplus-types.c.
References c_get_range_decl_name(), compile_cplus_instance::convert_type(), get_array_bounds(), type::index_type(), type::is_vector(), compile_cplus_instance::plugin(), PROP_LOCEXPR, PROP_LOCLIST, and type::target_type().
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 1040 of file compile-cplus-types.c.
References compile_cplus_instance::plugin().
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 1082 of file compile-cplus-types.c.
References compile_cplus_instance::convert_type(), compile_cplus_instance::plugin(), and type::target_type().
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 905 of file compile-cplus-types.c.
References compile_cplus_instance::decl_name(), compile_cplus_instance::enter_scope(), type::field(), FIELD_LOC_KIND_ENUMVAL, GCC_TYPE_NONE, type::is_unsigned(), compile_cplus_instance::leave_scope(), type::length(), field::loc_enumval(), field::loc_kind(), name, field::name(), type::name(), compile_scope::nested_type(), compile_cplus_instance::new_scope(), type::num_fields(), and compile_cplus_instance::plugin().
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 1022 of file compile-cplus-types.c.
References type::length(), type::name(), and compile_cplus_instance::plugin().
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 959 of file compile-cplus-types.c.
References type::arch(), builtin_type::builtin_int, builtin_type(), compile_cplus_instance::convert_type(), type::field(), type::has_varargs(), field::is_artificial(), type::num_fields(), compile_cplus_instance::plugin(), type::target_type(), and field::type().
Referenced by compile_cplus_convert_method(), compile_cplus_convert_struct_or_union_methods(), and convert_type_cplus_basic().
|
static |
Definition at line 1007 of file compile-cplus-types.c.
References type::has_no_signedness(), type::is_unsigned(), type::length(), type::name(), and compile_cplus_instance::plugin().
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 689 of file compile-cplus-types.c.
References compile_cplus_instance::convert_type(), GCC_TYPE_NONE, compile_cplus_instance::plugin(), type::target_type(), and TYPE_SELF_TYPE.
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 662 of file compile-cplus-types.c.
References compile_cplus_convert_func(), compile_cplus_instance::convert_type(), compile_cplus_instance::plugin(), TYPE_CONST, TYPE_RESTRICT, and TYPE_VOLATILE.
Referenced by compile_cplus_convert_struct_or_union_methods(), and convert_type_cplus_basic().
|
static |
Definition at line 1093 of file compile-cplus-types.c.
References compile_cplus_instance::decl_name(), compile_cplus_instance::enter_scope(), GCC_TYPE_NONE, compile_cplus_instance::leave_scope(), name, type::name(), compile_cplus_instance::new_scope(), compile_cplus_instance::plugin(), and gcc_cp_plugin::pop_binding_level().
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 441 of file compile-cplus-types.c.
References compile_cplus_instance::convert_pointer_base(), compile_cplus_instance::convert_type(), and type::target_type().
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 1062 of file compile-cplus-types.c.
References compile_cplus_instance::convert_qualified_base(), compile_cplus_instance::convert_type(), make_unqualified_type(), TYPE_CONST, TYPE_RESTRICT, and TYPE_VOLATILE.
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 409 of file compile-cplus-types.c.
References type::code(), compile_cplus_instance::convert_reference_base(), compile_cplus_instance::convert_type(), and type::target_type().
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 800 of file compile-cplus-types.c.
References BASETYPE_VIA_VIRTUAL, gcc_cp_plugin::build_decl(), type::code(), compile_cplus_convert_struct_or_union_members(), compile_cplus_convert_struct_or_union_methods(), compile_cplus_convert_type_defns(), compile_cplus_instance::convert_type(), compile_cplus_instance::decl_name(), compile_cplus_instance::enter_scope(), gcc_cp_plugin::finish_class_type(), flags, GCC_TYPE_NONE, get_field_access_flag(), compile_instance::insert_type(), type::is_declared_class(), compile_cplus_instance::leave_scope(), type::length(), name, type::name(), compile_scope::nested_type(), compile_cplus_instance::new_scope(), compile_cplus_instance::plugin(), gcc_cp_plugin::start_class_type(), TYPE_BASECLASS, and TYPE_N_BASECLASSES.
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 579 of file compile-cplus-types.c.
References field::bitsize(), compile_instance::block(), gcc_cp_plugin::build_decl(), compile_cplus_instance::convert_type(), type::field(), FIELD_LOC_KIND_PHYSADDR, FIELD_LOC_KIND_PHYSNAME, field_name(), symtab::filename, get_field_access_flag(), field::is_artificial(), field::is_static(), type::length(), symbol::line(), field::loc_bitpos(), field::loc_kind(), field::loc_physaddr(), field::loc_physname(), lookup_symbol(), field::name(), type::num_fields(), compile_cplus_instance::plugin(), block_symbol::symbol, symbol::symtab, field::type(), TYPE_FIELD_IGNORE, TYPE_N_BASECLASSES, symbol::value_address(), and VAR_DOMAIN.
Referenced by compile_cplus_convert_struct_or_union().
|
static |
Definition at line 709 of file compile-cplus-types.c.
References compile_instance::block(), gcc_cp_plugin::build_decl(), compile_cplus_convert_func(), compile_cplus_convert_method(), compile_cplus_instance::decl_name(), symtab::filename, get_method_access_flag(), symbol::line(), lookup_symbol(), compile_cplus_instance::plugin(), block::start(), block_symbol::symbol, symbol::symtab, TYPE_FN_FIELD_ARTIFICIAL, TYPE_FN_FIELD_PHYSNAME, TYPE_FN_FIELD_STATIC_P, TYPE_FN_FIELD_TYPE, TYPE_FN_FIELD_VIRTUAL_P, TYPE_FN_FIELDLIST1, TYPE_FN_FIELDLIST_LENGTH, TYPE_FN_FIELDLIST_NAME, TYPE_NFN_FIELDS, symbol::value_block(), and VAR_DOMAIN.
Referenced by compile_cplus_convert_struct_or_union().
|
static |
Definition at line 543 of file compile-cplus-types.c.
References compile_cplus_instance::convert_type(), TYPE_NESTED_TYPES_COUNT, TYPE_NESTED_TYPES_FIELD_PRIVATE, TYPE_NESTED_TYPES_FIELD_PROTECTED, TYPE_NESTED_TYPES_FIELD_TYPE, TYPE_TYPEDEF_FIELD_COUNT, TYPE_TYPEDEF_FIELD_PRIVATE, TYPE_TYPEDEF_FIELD_PROTECTED, and TYPE_TYPEDEF_FIELD_TYPE.
Referenced by compile_cplus_convert_struct_or_union().
|
static |
Definition at line 513 of file compile-cplus-types.c.
References gcc_cp_plugin::build_decl(), check_typedef(), compile_cplus_instance::convert_type(), compile_cplus_instance::decl_name(), compile_cplus_instance::enter_scope(), GCC_TYPE_NONE, compile_cplus_instance::leave_scope(), name, type::name(), compile_scope::nested_type(), compile_cplus_instance::new_scope(), and compile_cplus_instance::plugin().
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 1032 of file compile-cplus-types.c.
References compile_cplus_instance::plugin().
Referenced by convert_type_cplus_basic().
|
static |
Definition at line 1251 of file compile-cplus-types.c.
Referenced by compile_cplus_debug_output().
|
static |
Definition at line 1263 of file compile-cplus-types.c.
References compile_cplus_debug_output(), compile_cplus_debug_output_1(), gdb_putc(), and gdb_stdlog.
|
static |
Definition at line 1242 of file compile-cplus-types.c.
References gdb_puts(), and gdb_stdlog.
Definition at line 1257 of file compile-cplus-types.c.
|
static |
Definition at line 1236 of file compile-cplus-types.c.
References gdb_printf(), and gdb_stdlog.
Referenced by compile_cplus_debug_output().
|
static |
Definition at line 1123 of file compile-cplus-types.c.
References type::code(), compile_cplus_convert_array(), compile_cplus_convert_bool(), compile_cplus_convert_complex(), compile_cplus_convert_enum(), compile_cplus_convert_float(), compile_cplus_convert_func(), compile_cplus_convert_int(), compile_cplus_convert_memberptr(), compile_cplus_convert_method(), compile_cplus_convert_namespace(), compile_cplus_convert_pointer(), compile_cplus_convert_qualified(), compile_cplus_convert_reference(), compile_cplus_convert_struct_or_union(), compile_cplus_convert_typedef(), compile_cplus_convert_void(), type::instance_flags(), compile_cplus_instance::plugin(), TYPE_INSTANCE_FLAG_CONST, TYPE_INSTANCE_FLAG_RESTRICT, TYPE_INSTANCE_FLAG_VOLATILE, and TYPE_SELF_TYPE.
Referenced by compile_cplus_instance::convert_type().
|
static |
Definition at line 74 of file compile-cplus-types.c.
References TYPE_FIELD_PRIVATE, and TYPE_FIELD_PROTECTED.
Referenced by compile_cplus_convert_struct_or_union(), and compile_cplus_convert_struct_or_union_members().
enum gcc_cp_symbol_kind get_method_access_flag | ( | const struct type * | type, |
int | fni, | ||
int | num ) |
Definition at line 89 of file compile-cplus-types.c.
References type::code(), type::is_declared_class(), TYPE_FN_FIELD_PRIVATE, TYPE_FN_FIELD_PROTECTED, and TYPE_FN_FIELDLIST1.
Referenced by compile_cplus_convert_struct_or_union_methods().
bool operator!= | ( | const compile_scope & | lhs, |
const compile_scope & | rhs ) |
Definition at line 230 of file compile-cplus-types.c.
bool operator!= | ( | const scope_component & | lhs, |
const scope_component & | rhs ) |
Definition at line 202 of file compile-cplus-types.c.
References scope_component::name.
bool operator== | ( | const compile_scope & | lhs, |
const compile_scope & | rhs ) |
Definition at line 211 of file compile-cplus-types.c.
bool operator== | ( | const scope_component & | lhs, |
const scope_component & | rhs ) |
Definition at line 193 of file compile-cplus-types.c.
References scope_component::name.
compile_scope type_name_to_scope | ( | const char * | type_name, |
const struct block * | block ) |
Definition at line 126 of file compile-cplus-types.c.
References type::code(), cp_find_first_component(), lookup_symbol(), block_symbol::symbol, symbol::type(), and VAR_DOMAIN.
Referenced by compile_cplus_instance::new_scope().
|
static |
Definition at line 48 of file compile-cplus-types.c.
Referenced by compile_cplus_instance::enter_scope(), and compile_cplus_instance::leave_scope().
|
static |
Definition at line 44 of file compile-cplus-types.c.
Referenced by gcc_cp_plugin::build_decl(), gcc_cp_plugin::finish_class_type(), gcc_cp_plugin::pop_binding_level(), and gcc_cp_plugin::start_class_type().