Lines Matching refs:macro

443       cpp_macro *macro = node->value.macro;  in _cpp_warn_if_unused_macro()  local
445 if (!macro->used in _cpp_warn_if_unused_macro()
448 macro->line)))) in _cpp_warn_if_unused_macro()
449 cpp_warning_with_line (pfile, CPP_W_UNUSED_MACROS, macro->line, 0, in _cpp_warn_if_unused_macro()
1090 _cpp_arguments_ok (cpp_reader *pfile, cpp_macro *macro, const cpp_hashnode *node, unsigned int argc) in _cpp_arguments_ok() argument
1092 if (argc == macro->paramc) in _cpp_arguments_ok()
1095 if (argc < macro->paramc) in _cpp_arguments_ok()
1106 if (argc + 1 == macro->paramc && macro->variadic) in _cpp_arguments_ok()
1108 if (CPP_PEDANTIC (pfile) && ! macro->syshdr in _cpp_arguments_ok()
1125 NODE_NAME (node), macro->paramc, argc); in _cpp_arguments_ok()
1130 NODE_NAME (node), argc, macro->paramc); in _cpp_arguments_ok()
1132 if (macro->line > RESERVED_LOCATION_COUNT) in _cpp_arguments_ok()
1133 cpp_error_at (pfile, CPP_DL_NOTE, macro->line, "macro \"%s\" defined here", in _cpp_arguments_ok()
1157 cpp_macro *macro; in collect_args() local
1165 macro = node->value.macro; in collect_args()
1166 if (macro->paramc) in collect_args()
1167 argc = macro->paramc; in collect_args()
1241 && ! (macro->variadic && argc == macro->paramc)) in collect_args()
1309 if (argc <= macro->paramc) in collect_args()
1312 if (argc != macro->paramc) in collect_args()
1333 if (argc == 1 && macro->paramc == 0 && args[0].count == 0) in collect_args()
1335 if (_cpp_arguments_ok (pfile, macro, node, argc)) in collect_args()
1344 if (macro->variadic && (argc < macro->paramc in collect_args()
1347 args[macro->paramc - 1].first = NULL; in collect_args()
1408 macro_real_token_count (const cpp_macro *macro) in macro_real_token_count() argument
1410 if (__builtin_expect (!macro->extra_tokens, true)) in macro_real_token_count()
1411 return macro->count; in macro_real_token_count()
1413 for (unsigned i = macro->count; i--;) in macro_real_token_count()
1414 if (macro->exp.tokens[i].type != CPP_PASTE) in macro_real_token_count()
1451 cpp_macro *macro = node->value.macro; in enter_macro_context() local
1454 if (macro->fun_like) in enter_macro_context()
1470 if (CPP_WTRADITIONAL (pfile) && ! node->value.macro->syshdr) in enter_macro_context()
1482 if (macro->paramc > 0) in enter_macro_context()
1483 replace_args (pfile, node, macro, in enter_macro_context()
1501 macro->used = 1; in enter_macro_context()
1503 if (macro->paramc == 0) in enter_macro_context()
1505 unsigned tokens_count = macro_real_token_count (macro); in enter_macro_context()
1509 const cpp_token *src = macro->exp.tokens; in enter_macro_context()
1535 _cpp_push_token_context (pfile, node, macro->exp.tokens, in enter_macro_context()
1850 expanded_token_index (cpp_reader *pfile, cpp_macro *macro, in expanded_token_index() argument
1856 return cur_replacement_token - macro->exp.tokens; in expanded_token_index()
1890 replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro, in replace_args() argument
1911 exp_count = macro_real_token_count (macro); in replace_args()
1913 limit = macro->exp.tokens + exp_count; in replace_args()
1915 for (src = macro->exp.tokens; src < limit; src++) in replace_args()
1936 || (src != macro->exp.tokens && (src[-1].flags & PASTE_LEFT))) in replace_args()
2013 vaopt_state vaopt_tracker (pfile, macro->variadic, &args[macro->paramc - 1]); in replace_args()
2015 for (src = macro->exp.tokens; src < limit; src++) in replace_args()
2029 if (src != macro->exp.tokens && !(src[-1].flags & PASTE_LEFT)) in replace_args()
2032 unsigned index = expanded_token_index (pfile, macro, src, i); in replace_args()
2086 unsigned index = expanded_token_index (pfile, macro, src, i); in replace_args()
2123 else if (src != macro->exp.tokens && (src[-1].flags & PASTE_LEFT)) in replace_args()
2145 && macro->variadic in replace_args()
2146 && src->val.macro_arg.arg_no == macro->paramc) in replace_args()
2192 && src != macro->exp.tokens && !(src[-1].flags & PASTE_LEFT) in replace_args()
2196 unsigned index = expanded_token_index (pfile, macro, src, i); in replace_args()
2236 index = expanded_token_index (pfile, macro, src, token_index); in replace_args()
2251 && ! macro->syshdr && ! cpp_in_system_header (pfile)) in replace_args()
2270 && ! macro->syshdr && ! cpp_in_system_header (pfile)) in replace_args()
2341 push_ptoken_context (cpp_reader *pfile, cpp_hashnode *macro, _cpp_buff *buff, in push_ptoken_context() argument
2347 context->c.macro = macro; in push_ptoken_context()
2360 _cpp_push_token_context (cpp_reader *pfile, cpp_hashnode *macro, in _cpp_push_token_context() argument
2365 if (macro == NULL) in _cpp_push_token_context()
2366 macro = macro_of_context (pfile->context); in _cpp_push_token_context()
2370 context->c.macro = macro; in _cpp_push_token_context()
2389 cpp_hashnode *macro, in push_extended_tokens_context() argument
2398 if (macro == NULL) in push_extended_tokens_context()
2399 macro = macro_of_context (pfile->context); in push_extended_tokens_context()
2406 m->macro_node = macro; in push_extended_tokens_context()
2416 _cpp_push_text_context (cpp_reader *pfile, cpp_hashnode *macro, in _cpp_push_text_context() argument
2422 context->c.macro = macro; in _cpp_push_text_context()
2426 macro->flags |= NODE_DISABLED; in _cpp_push_text_context()
2683 : context->c.macro; in macro_of_context()
2713 if (context->c.macro) in _cpp_pop_context()
2715 cpp_hashnode *macro; in _cpp_pop_context() local
2719 macro = mc->macro_node; in _cpp_pop_context()
2733 macro = context->c.macro; in _cpp_pop_context()
2740 if (macro != NULL in _cpp_pop_context()
2747 && macro_of_context (context->prev) != macro) in _cpp_pop_context()
2748 macro->flags &= ~NODE_DISABLED; in _cpp_pop_context()
2750 if (macro == pfile->top_most_macro_node && context->prev == NULL) in _cpp_pop_context()
2893 if (pfile->context->c.macro) in cpp_get_token_1()
3075 node = pfile->context->c.macro; in cpp_sys_macro_p()
3077 return node && node->value.macro && node->value.macro->syshdr; in cpp_sys_macro_p()
3139 if (pfile->context->c.macro) in _cpp_backup_tokens()
3174 cpp_macro *macro1 = node->value.macro; in warn_of_redefinition()
3400 lex_expansion_token (cpp_reader *pfile, cpp_macro *macro) in lex_expansion_token() argument
3402 macro = (cpp_macro *)_cpp_reserve_room (pfile, in lex_expansion_token()
3404 + macro->count * sizeof (cpp_token), in lex_expansion_token()
3407 pfile->cur_token = &macro->exp.tokens[macro->count]; in lex_expansion_token()
3420 else if (CPP_WTRADITIONAL (pfile) && macro->paramc > 0 in lex_expansion_token()
3422 check_trad_stringification (pfile, macro, &token->val.str); in lex_expansion_token()
3424 return macro; in lex_expansion_token()
3438 cpp_macro *macro = NULL; in create_iso_definition() local
3499 macro = _cpp_new_macro (pfile, cmk_macro, in create_iso_definition()
3504 macro->variadic = varadic; in create_iso_definition()
3505 macro->paramc = nparms; in create_iso_definition()
3506 macro->parm.params = params; in create_iso_definition()
3507 macro->fun_like = true; in create_iso_definition()
3512 macro->exp.tokens[0] = *token; in create_iso_definition()
3513 token = &macro->exp.tokens[0]; in create_iso_definition()
3514 macro->count = 1; in create_iso_definition()
3517 for (vaopt_state vaopt_tracker (pfile, macro->variadic, NULL);; token = NULL) in create_iso_definition()
3521 macro = lex_expansion_token (pfile, macro); in create_iso_definition()
3522 token = &macro->exp.tokens[macro->count++]; in create_iso_definition()
3527 if (macro->count > 1 && token[-1].type == CPP_HASH && macro->fun_like) in create_iso_definition()
3539 macro->count--; in create_iso_definition()
3570 if (macro->count == 1) in create_iso_definition()
3581 token->val.token_no = macro->count - 1; in create_iso_definition()
3586 --macro->count; in create_iso_definition()
3606 macro->count--; in create_iso_definition()
3608 macro = (cpp_macro *)_cpp_commit_buff in create_iso_definition()
3610 + sizeof (cpp_token) * macro->count); in create_iso_definition()
3613 if (macro->count) in create_iso_definition()
3614 macro->exp.tokens[0].flags &= ~PREV_WHITE; in create_iso_definition()
3627 cpp_token *exp = macro->exp.tokens; in create_iso_definition()
3628 for (unsigned ix = 0; ix != macro->count; ix++) in create_iso_definition()
3636 macro->extra_tokens = 1; in create_iso_definition()
3643 return ok ? macro : NULL; in create_iso_definition()
3649 cpp_macro *macro = (cpp_macro *) placement; in _cpp_new_macro() local
3651 macro->line = pfile->directive_line; in _cpp_new_macro()
3652 macro->parm.params = 0; in _cpp_new_macro()
3653 macro->lazy = 0; in _cpp_new_macro()
3654 macro->paramc = 0; in _cpp_new_macro()
3655 macro->variadic = 0; in _cpp_new_macro()
3656 macro->used = !CPP_OPTION (pfile, warn_unused_macros); in _cpp_new_macro()
3657 macro->count = 0; in _cpp_new_macro()
3658 macro->fun_like = 0; in _cpp_new_macro()
3659 macro->extra_tokens = 0; in _cpp_new_macro()
3661 macro->syshdr = pfile->buffer && pfile->buffer->sysp != 0; in _cpp_new_macro()
3663 macro->kind = kind; in _cpp_new_macro()
3665 return macro; in _cpp_new_macro()
3672 cpp_macro *macro; in _cpp_create_definition() local
3675 macro = _cpp_create_trad_definition (pfile); in _cpp_create_definition()
3677 macro = create_iso_definition (pfile); in _cpp_create_definition()
3679 if (!macro) in _cpp_create_definition()
3687 if (warn_of_redefinition (pfile, node, macro)) in _cpp_create_definition()
3700 node->value.macro->line, 0, in _cpp_create_definition()
3708 node->value.macro = macro; in _cpp_create_definition()
3729 cpp_macro *macro = node->value.macro; in cpp_define_lazily() local
3731 gcc_checking_assert (pfile->cb.user_lazy_macro && macro && num < UCHAR_MAX); in cpp_define_lazily()
3733 macro->lazy = num + 1; in cpp_define_lazily()
3747 cpp_macro *macro = node->value.macro; in _cpp_notify_macro_use() local
3748 if (macro->lazy) in _cpp_notify_macro_use()
3750 pfile->cb.user_lazy_macro (pfile, macro, macro->lazy - 1); in _cpp_notify_macro_use()
3751 macro->lazy = 0; in _cpp_notify_macro_use()
3774 check_trad_stringification (cpp_reader *pfile, const cpp_macro *macro, in check_trad_stringification() argument
3797 for (i = 0; i < macro->paramc; i++) in check_trad_stringification()
3799 const cpp_hashnode *node = macro->parm.params[i]; in check_trad_stringification()
3826 const cpp_macro *macro = node->value.macro; in cpp_macro_definition() local
3830 if (macro->fun_like) in cpp_macro_definition()
3834 for (i = 0; i < macro->paramc; i++) in cpp_macro_definition()
3835 len += NODE_LEN (macro->parm.params[i]) + 1; /* "," */ in cpp_macro_definition()
3840 len += _cpp_replacement_text_len (macro); in cpp_macro_definition()
3843 unsigned int count = macro_real_token_count (macro); in cpp_macro_definition()
3846 const cpp_token *token = &macro->exp.tokens[i]; in cpp_macro_definition()
3874 if (macro->fun_like) in cpp_macro_definition()
3877 for (i = 0; i < macro->paramc; i++) in cpp_macro_definition()
3879 cpp_hashnode *param = macro->parm.params[i]; in cpp_macro_definition()
3887 if (i + 1 < macro->paramc) in cpp_macro_definition()
3892 else if (macro->variadic) in cpp_macro_definition()
3903 buffer = _cpp_copy_replacement_text (macro, buffer); in cpp_macro_definition()
3904 else if (macro->count) in cpp_macro_definition()
3907 unsigned int count = macro_real_token_count (macro); in cpp_macro_definition()
3910 const cpp_token *token = &macro->exp.tokens[i]; in cpp_macro_definition()