本文整理汇总了C++中IDENTIFIER_POINTER函数的典型用法代码示例。如果您正苦于以下问题:C++ IDENTIFIER_POINTER函数的具体用法?C++ IDENTIFIER_POINTER怎么用?C++ IDENTIFIER_POINTER使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了IDENTIFIER_POINTER函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sdbout_reg_parms
static void
sdbout_reg_parms (tree parms)
{
for (; parms; parms = TREE_CHAIN (parms))
if (DECL_NAME (parms))
{
const char *name = IDENTIFIER_POINTER (DECL_NAME (parms));
/* Report parms that live in registers during the function
but were passed in memory. */
if (REG_P (DECL_RTL (parms))
&& REGNO (DECL_RTL (parms)) < FIRST_PSEUDO_REGISTER
&& PARM_PASSED_IN_MEMORY (parms))
{
if (name == 0 || *name == 0)
name = gen_fake_label ();
PUT_SDB_DEF (name);
PUT_SDB_INT_VAL (DBX_REGISTER_NUMBER (REGNO (DECL_RTL (parms))));
PUT_SDB_SCL (C_REG);
PUT_SDB_TYPE (plain_type (TREE_TYPE (parms)));
PUT_SDB_ENDEF;
}
/* Report parms that live in memory but not where they were passed. */
else if (MEM_P (DECL_RTL (parms))
&& GET_CODE (XEXP (DECL_RTL (parms), 0)) == PLUS
&& CONST_INT_P (XEXP (XEXP (DECL_RTL (parms), 0), 1))
&& PARM_PASSED_IN_MEMORY (parms)
&& ! rtx_equal_p (DECL_RTL (parms), DECL_INCOMING_RTL (parms)))
{
#if 0 /* ??? It is not clear yet what should replace this. */
int offset = DECL_OFFSET (parms) / BITS_PER_UNIT;
/* A parm declared char is really passed as an int,
so it occupies the least significant bytes.
On a big-endian machine those are not the low-numbered ones. */
if (BYTES_BIG_ENDIAN
&& offset != -1
&& TREE_TYPE (parms) != DECL_ARG_TYPE (parms))
offset += (GET_MODE_SIZE (TYPE_MODE (DECL_ARG_TYPE (parms)))
- GET_MODE_SIZE (GET_MODE (DECL_RTL (parms))));
if (INTVAL (XEXP (XEXP (DECL_RTL (parms), 0), 1)) != offset) {...}
#endif
{
if (name == 0 || *name == 0)
name = gen_fake_label ();
PUT_SDB_DEF (name);
PUT_SDB_INT_VAL (DEBUGGER_AUTO_OFFSET
(XEXP (DECL_RTL (parms), 0)));
PUT_SDB_SCL (C_AUTO);
PUT_SDB_TYPE (plain_type (TREE_TYPE (parms)));
PUT_SDB_ENDEF;
}
}
}
示例2: lookup_attribute_spec
const struct attribute_spec *
lookup_attribute_spec (tree name)
{
struct substring attr;
attr.str = IDENTIFIER_POINTER (name);
attr.length = IDENTIFIER_LENGTH (name);
extract_attribute_substring (&attr);
return (const struct attribute_spec *)
htab_find_with_hash (attribute_hash, &attr,
substring_hash (attr.str, attr.length));
}
示例3: read_data
static void read_data( tree t )
{
if ( DECL_NAME(t) )
{
printf ( " data \'%s\'\n", IDENTIFIER_POINTER(DECL_NAME(t)) );
}
else
{
printf ( " data \'%c_%u\'\n", (TREE_CODE(t)==CONST_DECL)?'C':'D', DECL_UID(t) );
}
read_type ( TREE_TYPE(t) );
}
示例4: pass_function
unsigned int pass_function()
{
warning(0, "%<%s%>", context);
const char *identifier = IDENTIFIER_POINTER(DECL_NAME(cfun->decl));
if ( mylist_find( g_myproof_pass->functions, function_exists, (void*)identifier ) == NULL )
{
mylist_insert( &(g_myproof_pass->functions), create_function_struct( identifier ) );
}
return 0;
}
示例5: build_decl
/*
* Create a DECL_... node of code CODE, name NAME
* and data type TYPE. We do NOT enter this node
* in any sort of symbol table.
*
* layout_decl is used to set up the decl's storage layout.
* Other slots are initialized to 0 or null pointers.
*/
tree
build_decl (enum tree_code code, tree name, tree type)
{
register tree t;
t = make_node (code);
#if (0) /*************************************/
/*
* That is not done, deliberately, so that
* having error_mark_node as the type can
* suppress useless errors in the use of
* this variable.
*/
if (type == error_mark_node)
type = integer_type_node;
#endif /*************************************/
DECL_NAME (t) = name;
if (name)
{
DECL_PRINT_NAME (t) = IDENTIFIER_POINTER (name);
DECL_ASSEMBLER_NAME (t) = IDENTIFIER_POINTER (name);
}
TREE_TYPE (t) = type;
DECL_ARGUMENTS (t) = NULL_TREE;
DECL_INITIAL (t) = NULL_TREE;
if (code == VAR_DECL || code == PARM_DECL || code == RESULT_DECL)
layout_decl (t, 0);
elif (code == FUNCTION_DECL)
DECL_MODE (t) = FUNCTION_MODE;
return (t);
} /* end build_decl */
示例6: gen_stdcall_or_fastcall_suffix
static tree
gen_stdcall_or_fastcall_suffix (tree decl, bool fastcall)
{
int total = 0;
/* ??? This probably should use XSTR (XEXP (DECL_RTL (decl), 0), 0) instead
of DECL_ASSEMBLER_NAME. */
const char *asmname = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
char *newsym;
char *p;
tree formal_type;
/* Do not change the identifier if a verbatim asmspec or already done. */
if (*asmname == '*' || strchr (asmname, '@'))
return DECL_ASSEMBLER_NAME (decl);
formal_type = TYPE_ARG_TYPES (TREE_TYPE (decl));
if (formal_type != NULL_TREE)
{
/* These attributes are ignored for variadic functions in
i386.c:ix86_return_pops_args. For compatibility with MS
compiler do not add @0 suffix here. */
if (TREE_VALUE (tree_last (formal_type)) != void_type_node)
return DECL_ASSEMBLER_NAME (decl);
/* Quit if we hit an incomplete type. Error is reported
by convert_arguments in c-typeck.c or cp/typeck.c. */
while (TREE_VALUE (formal_type) != void_type_node
&& COMPLETE_TYPE_P (TREE_VALUE (formal_type)))
/* APPLE LOCAL begin mainline 2005-10-12 */
{
int parm_size
= TREE_INT_CST_LOW (TYPE_SIZE (TREE_VALUE (formal_type)));
/* Must round up to include padding. This is done the same
way as in store_one_arg. */
parm_size = ((parm_size + PARM_BOUNDARY - 1)
/ PARM_BOUNDARY * PARM_BOUNDARY);
total += parm_size;
formal_type = TREE_CHAIN (formal_type); \
}
/* APPLE LOCAL end mainline 2005-10-12 */
}
/* Assume max of 8 base 10 digits in the suffix. */
newsym = alloca (1 + strlen (asmname) + 1 + 8 + 1);
p = newsym;
if (fastcall)
*p++ = FASTCALL_PREFIX;
sprintf (p, "%[email protected]%d", asmname, total/BITS_PER_UNIT);
return get_identifier (newsym);
}
示例7: declare_function_name
void
declare_function_name ()
{
tree decl, init;
char *name, *printable_name;
if (current_function_decl == NULL)
{
name = "";
printable_name = "top level";
}
else
{
char *kind = "function";
if (TREE_CODE (TREE_TYPE (current_function_decl)) == METHOD_TYPE)
kind = "method";
/* Allow functions to be nameless (such as artificial ones). */
if (DECL_NAME (current_function_decl))
name = IDENTIFIER_POINTER (DECL_NAME (current_function_decl));
else
name = "";
printable_name = (*decl_printable_name) (current_function_decl, &kind);
}
push_obstacks_nochange ();
decl = build_decl (VAR_DECL, get_identifier ("__FUNCTION__"),
char_array_type_node);
TREE_STATIC (decl) = 1;
TREE_READONLY (decl) = 1;
DECL_SOURCE_LINE (decl) = 0;
DECL_IN_SYSTEM_HEADER (decl) = 1;
DECL_IGNORED_P (decl) = 1;
init = build_string (strlen (name) + 1, name);
TREE_TYPE (init) = char_array_type_node;
DECL_INITIAL (decl) = init;
finish_decl (pushdecl (decl), init, NULL_TREE);
push_obstacks_nochange ();
decl = build_decl (VAR_DECL, get_identifier ("__PRETTY_FUNCTION__"),
char_array_type_node);
TREE_STATIC (decl) = 1;
TREE_READONLY (decl) = 1;
DECL_SOURCE_LINE (decl) = 0;
DECL_IN_SYSTEM_HEADER (decl) = 1;
DECL_IGNORED_P (decl) = 1;
init = build_string (strlen (printable_name) + 1, printable_name);
TREE_TYPE (init) = char_array_type_node;
DECL_INITIAL (decl) = init;
finish_decl (pushdecl (decl), init, NULL_TREE);
}
示例8: find_instr_node
tree find_instr_node(tree temp)
{
int ret = 0;
tree decl_node;
PWord_t PV;
JSLG(PV, decl_map, mf_varname_tree(temp));
if(PV){
decl_node = ((tree) *PV);
gcc_assert(decl_node != NULL_TREE);
DEBUGLOG("[find_instr] Match found for %s --> %s\n",mf_varname_tree(temp), IDENTIFIER_POINTER(DECL_NAME(decl_node)));
return decl_node;
}else
DEBUGLOG("[find_instr] Match not found for %s\n",mf_varname_tree(temp));
return NULL_TREE;
}
示例9: gfc_get_string
const char *
gfc_get_string (const char *format, ...)
{
char temp_name[128];
va_list ap;
tree ident;
va_start (ap, format);
vsnprintf (temp_name, sizeof(temp_name), format, ap);
va_end (ap);
temp_name[sizeof(temp_name)-1] = 0;
ident = get_identifier (temp_name);
return IDENTIFIER_POINTER (ident);
}
示例10: add_objc_string
tree
add_objc_string (tree ident, string_section section)
{
tree *chain, decl, type;
char buf[BUFSIZE];
switch (section)
{
case class_names:
chain = &class_names_chain;
snprintf (buf, BUFSIZE, "_OBJC_ClassName_%s", IDENTIFIER_POINTER (ident));
break;
case meth_var_names:
chain = &meth_var_names_chain;
snprintf (buf, BUFSIZE, "_OBJC_METH_VAR_NAME_%d", meth_var_names_idx++);
break;
case meth_var_types:
chain = &meth_var_types_chain;
snprintf (buf, BUFSIZE, "_OBJC_METH_VAR_TYPE_%d", meth_var_types_idx++);
break;
case prop_names_attr:
chain = &prop_names_attr_chain;
snprintf (buf, BUFSIZE, "_OBJC_PropertyAttributeOrName_%d", property_name_attr_idx++);
break;
default:
gcc_unreachable ();
}
while (*chain)
{
if (TREE_VALUE (*chain) == ident)
return convert (string_type_node,
build_unary_op (input_location,
ADDR_EXPR, TREE_PURPOSE (*chain), 1));
chain = &TREE_CHAIN (*chain);
}
type = build_sized_array_type (char_type_node, IDENTIFIER_LENGTH (ident) + 1);
/* Get a runtime-specific string decl which will be finish_var()'ed in
generate_strings (). */
decl = (*runtime.string_decl) (type, buf, section);
TREE_CONSTANT (decl) = 1;
*chain = tree_cons (decl, ident, NULL_TREE);
return convert (string_type_node,
build_unary_op (input_location, ADDR_EXPR, decl, 1));
}
示例11: lto_symtab_get_resolution
enum ld_plugin_symbol_resolution
lto_symtab_get_resolution (tree decl)
{
lto_symtab_entry_t e;
gcc_assert (DECL_ASSEMBLER_NAME_SET_P (decl));
e = lto_symtab_get ((*targetm.asm_out.mangle_assembler_name)
(IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))));
while (e && e->decl != decl)
e = e->next;
if (!e)
return LDPR_UNKNOWN;
return e->resolution;
}
示例12: machopic_output_function_base_name
void
machopic_output_function_base_name (FILE *file)
{
const char *current_name;
/* If dynamic-no-pic is on, we should not get here. */
gcc_assert (!MACHO_DYNAMIC_NO_PIC_P);
current_name =
IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (current_function_decl));
if (function_base_func_name != current_name)
{
++current_pic_label_num;
function_base_func_name = current_name;
}
fprintf (file, "\"L%011d$pb\"", current_pic_label_num);
}
示例13: get_inline_stack
gcov_type
autofdo_source_profile::get_callsite_total_count (
struct cgraph_edge *edge) const
{
inline_stack stack;
stack.safe_push (std::make_pair (edge->callee->decl, 0));
get_inline_stack (gimple_location (edge->call_stmt), &stack);
function_instance *s = get_function_instance_by_inline_stack (stack);
if (s == NULL
|| afdo_string_table->get_index (IDENTIFIER_POINTER (
DECL_ASSEMBLER_NAME (edge->callee->decl))) != s->name ())
return 0;
return s->total_count ();
}
示例14: myprof_pass
static unsigned int
myprof_pass ( void )
{
basic_block bb;
gimple_stmt_iterator gsi;
int nbop = 0;
//printf("Debut de la passe\n");
fprintf ( stderr, "* MIHP on %s()\n", IDENTIFIER_POINTER(DECL_NAME(cfun->decl)) );
FOR_EACH_BB ( bb )
{
fprintf ( stdout, " ** BB %d\n", bb->index );
//*nb2opSuperior=0;
/* nbop = 0;*/
nbloads = 0;
nbstores = 0;
for ( gsi=gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi) )
{
/* print_gimple_stmt ( stdout, gsi_stmt(gsi), 0, 0 );*/
myprof_read_stmt ( gsi_stmt(gsi), &nbop);
}
if(nbloads > 0)
fprintf(stdout, "%d load\n", nbloads);
if(nbstores > 0)
fprintf(stdout, "%d store\n", nbstores);
/* fprintf(stdout, "nombre d'operations: %d\n", nbop);*/
//printf("Nombre d'operations superieures à 2: %d\n", nb2opSuperior);
}
/* recursively read looops */
if ( cfun->x_current_loops != NULL )
myprof_read_loop ( cfun->x_current_loops->tree_root );
return 0;
}
示例15: gcc_genericize
void
gcc_genericize (tree fndecl)
{
FILE *dump_orig;
int local_dump_flags;
struct cgraph_node *cgn;
/* Dump the C-specific tree IR. */
dump_orig = gcc_dump_begin (TDI_original, &local_dump_flags);
/*
if(dump_orig)
{
printf("should start dumping original tree.\n");
}else{
printf("no dumping original tree flag.\n");
}
*/
if (dump_orig)
{
fprintf (dump_orig, "\n;; Function %s",
lang_hooks.decl_printable_name (fndecl, 2));
astTreeBuilder->addFunctionName(lang_hooks.decl_printable_name (fndecl, 2));
fprintf (dump_orig, " (%s)\n",
(!DECL_ASSEMBLER_NAME_SET_P (fndecl) ? "null"
: IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (fndecl))));
fprintf (dump_orig, ";; enabled by -%s\n", dump_flag_name (TDI_original));
fprintf (dump_orig, "\n");
//if (local_dump_flags & TDF_RAW)
gcc_dump_node (DECL_SAVED_TREE (fndecl),
TDF_SLIM | local_dump_flags, dump_orig);
// else
// print_c_tree (dump_orig, DECL_SAVED_TREE (fndecl));
fprintf (dump_orig, "\n");
restore_state();
gcc_dump_end (TDI_original, dump_orig);
}
/* Dump all nested functions now. */
cgn = cgraph_node (fndecl);
for (cgn = cgn->nested; cgn ; cgn = cgn->next_nested)
gcc_genericize (cgn->decl);
}