这篇教程C++ IDENTIFIER_POINTER函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中IDENTIFIER_POINTER函数的典型用法代码示例。如果您正苦于以下问题:C++ IDENTIFIER_POINTER函数的具体用法?C++ IDENTIFIER_POINTER怎么用?C++ IDENTIFIER_POINTER使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了IDENTIFIER_POINTER函数的24个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: sdbout_reg_parmsstatic voidsdbout_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; } } }
开发者ID:BoxianLai,项目名称:moxiedev,代码行数:53,
示例2: lookup_attribute_specconst 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));}
开发者ID:IntegerCompany,项目名称:linaro-android-gcc,代码行数:12,
示例3: read_datastatic 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) );}
开发者ID:canercandan,项目名称:myproof,代码行数:13,
示例4: pass_functionunsigned 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;}
开发者ID:canercandan,项目名称:myproof,代码行数:13,
示例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. */treebuild_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 */
开发者ID:marioaugustorama,项目名称:tropix-cmd,代码行数:46,
示例6: gen_stdcall_or_fastcall_suffixstatic treegen_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 C++ IDL_IDENT函数代码示例 C++ IDENTIFIER_LENGTH函数代码示例
|