Lines Matching refs:arglist

834 expand_builtin_nonlocal_goto (tree arglist)
839 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
842 t_label = TREE_VALUE (arglist);
843 arglist = TREE_CHAIN (arglist);
844 t_save_area = TREE_VALUE (arglist);
944 expand_builtin_prefetch (tree arglist)
949 if (!validate_arglist (arglist, POINTER_TYPE, 0))
952 arg0 = TREE_VALUE (arglist);
956 if (TREE_CHAIN (arglist))
958 arg1 = TREE_VALUE (TREE_CHAIN (arglist));
959 if (TREE_CHAIN (TREE_CHAIN (arglist)))
960 arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
1613 expand_builtin_classify_type (tree arglist)
1615 if (arglist != 0)
1616 return GEN_INT (type_to_class (TREE_TYPE (TREE_VALUE (arglist))));
1782 tree arglist = TREE_OPERAND (exp, 1);
1787 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
1790 arg = TREE_VALUE (arglist);
1864 arglist = build_tree_list (NULL_TREE, arg);
1865 exp = build_function_call_expr (fndecl, arglist);
1954 tree arglist = TREE_OPERAND (exp, 1);
1965 if (!validate_arglist (arglist, REAL_TYPE, op1_type, VOID_TYPE))
1968 arg0 = TREE_VALUE (arglist);
1969 arg1 = TREE_VALUE (TREE_CHAIN (arglist));
2008 temp = TREE_CHAIN (arglist);
2014 arglist = tree_cons (NULL_TREE, narg, temp);
2018 arglist = tree_cons (NULL_TREE, arg0, temp);
2021 exp = build_function_call_expr (fndecl, arglist);
2066 tree arglist = TREE_OPERAND (exp, 1);
2070 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
2073 arg = TREE_VALUE (arglist);
2113 arglist = build_tree_list (NULL_TREE, arg);
2114 exp = build_function_call_expr (fndecl, arglist);
2174 tree arglist = TREE_OPERAND (exp, 1);
2179 if (!validate_arglist (arglist, REAL_TYPE,
2183 arg = TREE_VALUE (arglist);
2184 sinp = TREE_VALUE (TREE_CHAIN (arglist));
2185 cosp = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
2226 tree arglist = TREE_OPERAND (exp, 1);
2232 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
2235 arg = TREE_VALUE (arglist);
2270 arglist = build_tree_list (NULL_TREE, arg);
2271 exp = build_function_call_expr (fndecl, arglist);
2301 exp = build_function_call_expr (fallback_fndecl, arglist);
2526 tree arglist = TREE_OPERAND (exp, 1);
2529 if (! validate_arglist (arglist, REAL_TYPE, REAL_TYPE, VOID_TYPE))
2532 arg0 = TREE_VALUE (arglist);
2533 arg1 = TREE_VALUE (TREE_CHAIN (arglist));
2576 tree arglist = TREE_OPERAND (exp, 1);
2582 if (! validate_arglist (arglist, REAL_TYPE, INTEGER_TYPE, VOID_TYPE))
2585 arg0 = TREE_VALUE (arglist);
2586 arg1 = TREE_VALUE (TREE_CHAIN (arglist));
2637 expand_builtin_strlen (tree arglist, rtx target,
2640 if (!validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
2645 tree len, src = TREE_VALUE (arglist);
2745 expand_builtin_strstr (tree arglist, tree type, rtx target, enum machine_mode mode)
2747 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
2749 tree result = fold_builtin_strstr (arglist, type);
2761 expand_builtin_strchr (tree arglist, tree type, rtx target, enum machine_mode mode)
2763 if (validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
2765 tree result = fold_builtin_strchr (arglist, type);
2779 expand_builtin_strrchr (tree arglist, tree type, rtx target, enum machine_mode mode)
2781 if (validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
2783 tree result = fold_builtin_strrchr (arglist, type);
2795 expand_builtin_strpbrk (tree arglist, tree type, rtx target, enum machine_mode mode)
2797 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
2799 tree result = fold_builtin_strpbrk (arglist, type);
2831 tree arglist = TREE_OPERAND (exp, 1);
2832 if (!validate_arglist (arglist,
2837 tree dest = TREE_VALUE (arglist);
2838 tree src = TREE_VALUE (TREE_CHAIN (arglist));
2839 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
2845 tree result = fold_builtin_memory_op (arglist, TREE_TYPE (TREE_TYPE (fndecl)),
2916 expand_builtin_mempcpy (tree arglist, tree type, rtx target, enum machine_mode mode,
2919 if (!validate_arglist (arglist,
2930 return expand_expr (build_function_call_expr (fn, arglist),
2935 tree dest = TREE_VALUE (arglist);
2936 tree src = TREE_VALUE (TREE_CHAIN (arglist));
2937 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
2943 tree result = fold_builtin_memory_op (arglist, type, false, endp);
3010 expand_builtin_memmove (tree arglist, tree type, rtx target,
3013 if (!validate_arglist (arglist,
3018 tree dest = TREE_VALUE (arglist);
3019 tree src = TREE_VALUE (TREE_CHAIN (arglist));
3020 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
3025 tree result = fold_builtin_memory_op (arglist, type, false, /*endp=*/3);
3054 fn = build_function_call_expr (fn, arglist);
3064 rtx ret = expand_builtin_mempcpy (arglist, type, target, mode,
3081 tree arglist = TREE_OPERAND (exp, 1);
3085 if (!validate_arglist (arglist,
3089 src = TREE_VALUE (arglist);
3090 dest = TREE_VALUE (TREE_CHAIN (arglist));
3091 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
3178 expand_builtin_strcpy (tree fndecl, tree arglist, rtx target, enum machine_mode mode)
3180 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
3182 tree result = fold_builtin_strcpy (fndecl, arglist, 0);
3194 return expand_movstr (TREE_VALUE (arglist),
3195 TREE_VALUE (TREE_CHAIN (arglist)),
3209 tree arglist = TREE_OPERAND (exp, 1);
3217 return expand_expr (build_function_call_expr (fn, arglist),
3221 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
3233 src = TREE_VALUE (TREE_CHAIN (arglist));
3235 return expand_movstr (TREE_VALUE (arglist),
3236 TREE_VALUE (TREE_CHAIN (arglist)),
3239 dst = TREE_VALUE (arglist);
3257 arglist, target, mode);
3280 return expand_movstr (TREE_VALUE (arglist),
3281 TREE_VALUE (TREE_CHAIN (arglist)),
3309 tree arglist = TREE_OPERAND (exp, 1);
3310 if (validate_arglist (arglist,
3313 tree slen = c_strlen (TREE_VALUE (TREE_CHAIN (arglist)), 1);
3314 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
3315 tree result = fold_builtin_strncpy (fndecl, arglist, slen);
3339 tree dest = TREE_VALUE (arglist);
3342 const char *p = c_getstr (TREE_VALUE (TREE_CHAIN (arglist)));
3411 expand_builtin_memset (tree arglist, rtx target, enum machine_mode mode,
3414 if (!validate_arglist (arglist,
3419 tree dest = TREE_VALUE (arglist);
3420 tree val = TREE_VALUE (TREE_CHAIN (arglist));
3421 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
3519 arglist = build_tree_list (NULL_TREE, len);
3521 arglist = tree_cons (NULL_TREE, val, arglist);
3522 arglist = tree_cons (NULL_TREE, dest, arglist);
3523 fn = build_function_call_expr (fndecl, arglist);
3536 tree arglist = TREE_OPERAND (exp, 1);
3539 if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
3542 dest = TREE_VALUE (arglist);
3543 size = TREE_VALUE (TREE_CHAIN (arglist));
3563 expand_builtin_memcmp (tree exp ATTRIBUTE_UNUSED, tree arglist, rtx target,
3566 if (!validate_arglist (arglist,
3571 tree result = fold_builtin_memcmp (arglist);
3578 tree arg1 = TREE_VALUE (arglist);
3579 tree arg2 = TREE_VALUE (TREE_CHAIN (arglist));
3580 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
3674 tree arglist = TREE_OPERAND (exp, 1);
3676 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
3680 tree result = fold_builtin_strcmp (arglist);
3693 tree arg1 = TREE_VALUE (arglist);
3694 tree arg2 = TREE_VALUE (TREE_CHAIN (arglist));
3807 arglist = build_tree_list (NULL_TREE, arg2);
3808 arglist = tree_cons (NULL_TREE, arg1, arglist);
3810 fn = build_function_call_expr (fndecl, arglist);
3826 tree arglist = TREE_OPERAND (exp, 1);
3828 if (!validate_arglist (arglist,
3833 tree result = fold_builtin_strncmp (arglist);
3844 tree arg1 = TREE_VALUE (arglist);
3845 tree arg2 = TREE_VALUE (TREE_CHAIN (arglist));
3846 tree arg3 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
3936 arglist = build_tree_list (NULL_TREE, len);
3937 arglist = tree_cons (NULL_TREE, arg2, arglist);
3938 arglist = tree_cons (NULL_TREE, arg1, arglist);
3940 fn = build_function_call_expr (fndecl, arglist);
3954 expand_builtin_strcat (tree fndecl, tree arglist, rtx target, enum machine_mode mode)
3956 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
3960 tree dst = TREE_VALUE (arglist),
3961 src = TREE_VALUE (TREE_CHAIN (arglist));
3978 arglist = build_tree_list (NULL_TREE, newsrc);
3980 arglist = TREE_CHAIN (arglist); /* Reusing arglist if safe. */
3995 arglist = tree_cons (NULL_TREE, newdst, arglist);
3997 if (!expand_builtin_strcpy (fndecl, arglist, target, mode))
4020 expand_builtin_strncat (tree arglist, rtx target, enum machine_mode mode)
4022 if (validate_arglist (arglist,
4025 tree result = fold_builtin_strncat (arglist);
4037 expand_builtin_strspn (tree arglist, rtx target, enum machine_mode mode)
4039 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
4041 tree result = fold_builtin_strspn (arglist);
4053 expand_builtin_strcspn (tree arglist, rtx target, enum machine_mode mode)
4055 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
4057 tree result = fold_builtin_strcspn (arglist);
4106 expand_builtin_args_info (tree arglist)
4113 if (arglist != 0)
4115 if (!host_integerp (TREE_VALUE (arglist), 0))
4119 HOST_WIDE_INT wordnum = tree_low_cst (TREE_VALUE (arglist), 0);
4215 expand_builtin_va_start (tree arglist)
4220 chain = TREE_CHAIN (arglist);
4232 valist = stabilize_va_list (TREE_VALUE (arglist), 1);
4456 expand_builtin_va_end (tree arglist)
4458 tree valist = TREE_VALUE (arglist);
4473 expand_builtin_va_copy (tree arglist)
4477 dst = TREE_VALUE (arglist);
4478 src = TREE_VALUE (TREE_CHAIN (arglist));
4521 expand_builtin_frame_address (tree fndecl, tree arglist)
4526 if (arglist == 0)
4529 else if (! host_integerp (TREE_VALUE (arglist), 1))
4541 tree_low_cst (TREE_VALUE (arglist), 1));
4569 expand_builtin_alloca (tree arglist, rtx target)
4580 if (!validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
4584 op0 = expand_normal (TREE_VALUE (arglist));
4599 expand_builtin_unop (enum machine_mode target_mode, tree arglist, rtx target,
4603 if (!validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
4607 op0 = expand_expr (TREE_VALUE (arglist), subtarget, VOIDmode, 0);
4610 target = expand_unop (TYPE_MODE (TREE_TYPE (TREE_VALUE (arglist))),
4621 expand_builtin_fputs (tree arglist, rtx target, bool unlocked)
4624 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
4626 tree result = fold_builtin_fputs (arglist, (target == const0_rtx),
4639 expand_builtin_expect (tree arglist, rtx target)
4644 if (arglist == NULL_TREE
4645 || TREE_CHAIN (arglist) == NULL_TREE)
4647 exp = TREE_VALUE (arglist);
4648 c = TREE_VALUE (TREE_CHAIN (arglist));
4685 tree arglist = TREE_OPERAND (exp, 1);
4686 tree arg0 = TREE_VALUE (arglist);
4687 tree arg1 = TREE_VALUE (TREE_CHAIN (arglist));
4812 expand_builtin_fabs (tree arglist, rtx target, rtx subtarget)
4818 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
4821 arg = TREE_VALUE (arglist);
4833 expand_builtin_copysign (tree arglist, rtx target, rtx subtarget)
4838 if (!validate_arglist (arglist, REAL_TYPE, REAL_TYPE, VOID_TYPE))
4841 arg = TREE_VALUE (arglist);
4844 arg = TREE_VALUE (TREE_CHAIN (arglist));
4884 tree arglist = TREE_OPERAND (exp, 1);
4899 if (! arglist)
4901 fmt = TREE_VALUE (arglist);
4904 arglist = TREE_CHAIN (arglist);
4917 if (! arglist
4918 || ! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist)))
4919 || TREE_CHAIN (arglist))
4926 if (! arglist
4927 || TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != INTEGER_TYPE
4928 || TREE_CHAIN (arglist))
4938 if (arglist)
4951 arglist = build_tree_list (NULL_TREE, arg);
4967 arglist = build_tree_list (NULL_TREE, arg);
4979 fn = build_function_call_expr (fn, arglist);
4994 tree arglist = TREE_OPERAND (exp, 1);
5009 if (! arglist)
5011 fp = TREE_VALUE (arglist);
5014 arglist = TREE_CHAIN (arglist);
5015 if (! arglist)
5017 fmt = TREE_VALUE (arglist);
5020 arglist = TREE_CHAIN (arglist);
5033 if (! arglist
5034 || ! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist)))
5035 || TREE_CHAIN (arglist))
5037 arg = TREE_VALUE (arglist);
5038 arglist = build_tree_list (NULL_TREE, fp);
5039 arglist = tree_cons (NULL_TREE, arg, arglist);
5045 if (! arglist
5046 || TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != INTEGER_TYPE
5047 || TREE_CHAIN (arglist))
5049 arg = TREE_VALUE (arglist);
5050 arglist = build_tree_list (NULL_TREE, fp);
5051 arglist = tree_cons (NULL_TREE, arg, arglist);
5060 if (arglist)
5074 arglist = build_tree_list (NULL_TREE, fp);
5075 arglist = tree_cons (NULL_TREE, fmt, arglist);
5081 fn = build_function_call_expr (fn, arglist);
5093 expand_builtin_sprintf (tree arglist, rtx target, enum machine_mode mode)
5098 orig_arglist = arglist;
5101 if (! arglist)
5103 dest = TREE_VALUE (arglist);
5106 arglist = TREE_CHAIN (arglist);
5107 if (! arglist)
5109 fmt = TREE_VALUE (arglist);
5112 arglist = TREE_CHAIN (arglist);
5128 if (arglist || ! fn)
5146 if (! arglist || TREE_CHAIN (arglist))
5148 arg = TREE_VALUE (arglist);
5161 arglist = build_tree_list (NULL_TREE, arg);
5162 arglist = tree_cons (NULL_TREE, dest, arglist);
5163 expand_expr (build_function_call_expr (fn, arglist),
5224 expand_builtin_init_trampoline (tree arglist)
5232 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE,
5236 t_tramp = TREE_VALUE (arglist);
5237 arglist = TREE_CHAIN (arglist);
5238 t_func = TREE_VALUE (arglist);
5239 arglist = TREE_CHAIN (arglist);
5240 t_chain = TREE_VALUE (arglist);
5261 expand_builtin_adjust_trampoline (tree arglist)
5265 if (!validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
5268 tramp = expand_normal (TREE_VALUE (arglist));
5288 tree arg, arglist;
5292 arglist = TREE_OPERAND (exp, 1);
5293 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
5296 arg = TREE_VALUE (arglist);
5384 expand_builtin_fork_or_exec (tree fn, tree arglist, rtx target, int ignore)
5438 call = build_function_call_expr (decl, arglist);
5492 expand_builtin_sync_operation (enum machine_mode mode, tree arglist,
5500 mem = get_builtin_sync_mem (TREE_VALUE (arglist), mode);
5502 arglist = TREE_CHAIN (arglist);
5503 val = expand_expr (TREE_VALUE (arglist), NULL, mode, EXPAND_NORMAL);
5508 old_mode = TYPE_MODE (TREE_TYPE (TREE_VALUE (arglist)));
5523 expand_builtin_compare_and_swap (enum machine_mode mode, tree arglist,
5530 mem = get_builtin_sync_mem (TREE_VALUE (arglist), mode);
5532 arglist = TREE_CHAIN (arglist);
5533 old_val = expand_expr (TREE_VALUE (arglist), NULL, mode, EXPAND_NORMAL);
5538 old_mode = TYPE_MODE (TREE_TYPE (TREE_VALUE (arglist)));
5541 arglist = TREE_CHAIN (arglist);
5542 new_val = expand_expr (TREE_VALUE (arglist), NULL, mode, EXPAND_NORMAL);
5547 old_mode = TYPE_MODE (TREE_TYPE (TREE_VALUE (arglist)));
5563 expand_builtin_lock_test_and_set (enum machine_mode mode, tree arglist,
5570 mem = get_builtin_sync_mem (TREE_VALUE (arglist), mode);
5572 arglist = TREE_CHAIN (arglist);
5573 val = expand_expr (TREE_VALUE (arglist), NULL, mode, EXPAND_NORMAL);
5578 old_mode = TYPE_MODE (TREE_TYPE (TREE_VALUE (arglist)));
5611 expand_builtin_lock_release (enum machine_mode mode, tree arglist)
5618 mem = get_builtin_sync_mem (TREE_VALUE (arglist), mode);
5653 tree arglist = TREE_OPERAND (exp, 1);
5682 for (arg = arglist; arg; arg = TREE_CHAIN (arg))
5691 for (arg = arglist; arg; arg = TREE_CHAIN (arg))
5701 target = expand_builtin_fabs (arglist, target, subtarget);
5707 target = expand_builtin_copysign (arglist, target, subtarget);
5813 if (!validate_arglist (arglist, POINTER_TYPE,
5815 && !validate_arglist (arglist, REFERENCE_TYPE,
5824 for (t = arglist, i = 0; t; t = TREE_CHAIN (t), i++)
5834 if (validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
5835 expand_builtin_return (expand_normal (TREE_VALUE (arglist)));
5842 return expand_builtin_args_info (arglist);
5846 if (fold_builtin_next_arg (arglist))
5851 return expand_builtin_classify_type (arglist);
5858 return expand_builtin_frame_address (fndecl, arglist);
5863 if (arglist != 0
5871 target = expand_builtin_alloca (arglist, target);
5880 expand_stack_restore (TREE_VALUE (arglist));
5885 target = expand_builtin_unop (target_mode, arglist, target,
5893 target = expand_builtin_unop (target_mode, arglist, target,
5901 target = expand_builtin_unop (target_mode, arglist, target,
5909 target = expand_builtin_unop (target_mode, arglist, target,
5917 target = expand_builtin_unop (target_mode, arglist, target,
5924 target = expand_builtin_strlen (arglist, target, target_mode);
5930 target = expand_builtin_strcpy (fndecl, arglist, target, mode);
5948 target = expand_builtin_strcat (fndecl, arglist, target, mode);
5954 target = expand_builtin_strncat (arglist, target, mode);
5960 target = expand_builtin_strspn (arglist, target, mode);
5966 target = expand_builtin_strcspn (arglist, target, mode);
5972 target = expand_builtin_strstr (arglist, TREE_TYPE (exp), target, mode);
5978 target = expand_builtin_strpbrk (arglist, TREE_TYPE (exp), target, mode);
5985 target = expand_builtin_strchr (arglist, TREE_TYPE (exp), target, mode);
5992 target = expand_builtin_strrchr (arglist, TREE_TYPE (exp), target, mode);
6004 target = expand_builtin_mempcpy (arglist, TREE_TYPE (exp), target, mode, /*endp=*/ 1);
6010 target = expand_builtin_memmove (arglist, TREE_TYPE (exp), target,
6023 target = expand_builtin_memset (arglist, target, mode, exp);
6048 target = expand_builtin_memcmp (exp, arglist, target, mode);
6060 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
6062 rtx buf_addr = expand_expr (TREE_VALUE (arglist), subtarget,
6064 tree label = TREE_OPERAND (TREE_VALUE (TREE_CHAIN (arglist)), 0);
6082 if (validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
6084 tree label = TREE_OPERAND (TREE_VALUE (arglist), 0);
6096 if (validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
6098 tree label = TREE_OPERAND (TREE_VALUE (arglist), 0);
6110 if (validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
6112 rtx buf_addr = expand_expr (TREE_VALUE (arglist), subtarget,
6114 rtx value = expand_normal (TREE_VALUE (TREE_CHAIN (arglist)));
6128 target = expand_builtin_nonlocal_goto (arglist);
6136 if (validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
6139 = expand_normal (TREE_VALUE (arglist));
6163 target = expand_builtin_fputs (arglist, target, false);
6168 target = expand_builtin_fputs (arglist, target, true);
6186 target = expand_builtin_sprintf (arglist, target, mode);
6207 expand_builtin_init_dwarf_reg_sizes (TREE_VALUE (arglist));
6211 return expand_builtin_frob_return_addr (TREE_VALUE (arglist));
6213 return expand_builtin_extract_return_addr (TREE_VALUE (arglist));
6215 expand_builtin_eh_return (TREE_VALUE (arglist),
6216 TREE_VALUE (TREE_CHAIN (arglist)));
6220 return expand_builtin_eh_return_data_regno (arglist);
6223 return expand_builtin_extend_pointer (TREE_VALUE (arglist));
6227 return expand_builtin_va_start (arglist);
6229 return expand_builtin_va_end (arglist);
6231 return expand_builtin_va_copy (arglist);
6233 return expand_builtin_expect (arglist, target);
6235 expand_builtin_prefetch (arglist);
6244 return expand_builtin_init_trampoline (arglist);
6246 return expand_builtin_adjust_trampoline (arglist);
6255 target = expand_builtin_fork_or_exec (fndecl, arglist, target, ignore);
6266 target = expand_builtin_sync_operation (mode, arglist, PLUS,
6278 target = expand_builtin_sync_operation (mode, arglist, MINUS,
6290 target = expand_builtin_sync_operation (mode, arglist, IOR,
6302 target = expand_builtin_sync_operation (mode, arglist, AND,
6314 target = expand_builtin_sync_operation (mode, arglist, XOR,
6326 target = expand_builtin_sync_operation (mode, arglist, NOT,
6338 target = expand_builtin_sync_operation (mode, arglist, PLUS,
6350 target = expand_builtin_sync_operation (mode, arglist, MINUS,
6362 target = expand_builtin_sync_operation (mode, arglist, IOR,
6374 target = expand_builtin_sync_operation (mode, arglist, AND,
6386 target = expand_builtin_sync_operation (mode, arglist, XOR,
6398 target = expand_builtin_sync_operation (mode, arglist, NOT,
6415 target = expand_builtin_compare_and_swap (mode, arglist, true, target);
6426 target = expand_builtin_compare_and_swap (mode, arglist, false, target);
6437 target = expand_builtin_lock_test_and_set (mode, arglist, target);
6448 expand_builtin_lock_release (mode, arglist);
6499 tree fndecl, arglist, parmlist;
6513 arglist = TREE_OPERAND (t, 1);
6522 if (arglist)
6527 if (! arglist)
6530 argtype = TREE_TYPE (TREE_VALUE (arglist));
6555 arglist = TREE_CHAIN (arglist);
6566 fold_builtin_constant_p (tree arglist)
6568 if (arglist == 0)
6571 arglist = TREE_VALUE (arglist);
6576 STRIP_NOPS (arglist);
6579 if (CONSTANT_CLASS_P (arglist)
6580 || (TREE_CODE (arglist) == CONSTRUCTOR
6581 && TREE_CONSTANT (arglist)))
6583 if (TREE_CODE (arglist) == ADDR_EXPR)
6585 tree op = TREE_OPERAND (arglist, 0);
6600 if (TREE_SIDE_EFFECTS (arglist)
6601 || AGGREGATE_TYPE_P (TREE_TYPE (arglist))
6602 || POINTER_TYPE_P (TREE_TYPE (arglist))
6616 fold_builtin_expect (tree arglist)
6620 if (arglist == 0)
6623 arg = TREE_VALUE (arglist);
6651 fold_builtin_classify_type (tree arglist)
6653 if (arglist == 0)
6657 type_to_class (TREE_TYPE (TREE_VALUE (arglist))));
6663 fold_builtin_strlen (tree arglist)
6665 if (!validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
6669 tree len = c_strlen (TREE_VALUE (arglist), 0);
6707 fold_builtin_nan (tree arglist, tree type, int quiet)
6712 if (!validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
6714 str = c_getstr (TREE_VALUE (arglist));
6805 fold_trunc_transparent_mathfn (tree fndecl, tree arglist)
6810 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
6813 arg = TREE_VALUE (arglist);
6833 arglist =
6836 build_function_call_expr (decl, arglist));
6846 fold_fixed_mathfn (tree fndecl, tree arglist)
6851 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
6854 arg = TREE_VALUE (arglist);
6871 arglist =
6873 return build_function_call_expr (decl, arglist);
6907 tree newcall = build_function_call_expr (newfn, arglist);
6921 fold_builtin_cabs (tree arglist, tree type, tree fndecl)
6925 if (!arglist || TREE_CHAIN (arglist))
6928 arg = TREE_VALUE (arglist);
6966 tree arglist = build_tree_list (NULL_TREE, TREE_OPERAND (arg, 0));
6967 return build_function_call_expr (fndecl, arglist);
6978 tree rpart, ipart, result, arglist;
6994 arglist = build_tree_list (NULL_TREE, result);
6995 return build_function_call_expr (sqrtfn, arglist);
7006 fold_builtin_sqrt (tree arglist, tree type)
7010 tree arg = TREE_VALUE (arglist);
7012 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7035 arglist = build_tree_list (NULL_TREE, arg);
7036 return build_function_call_expr (expfn, arglist);
7056 arglist = tree_cons (NULL_TREE, arg0,
7058 return build_function_call_expr (powfn, arglist);
7076 arglist = tree_cons (NULL_TREE, arg0,
7078 return build_function_call_expr (powfn, arglist);
7087 fold_builtin_cbrt (tree arglist, tree type)
7089 tree arg = TREE_VALUE (arglist);
7092 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7110 arglist = build_tree_list (NULL_TREE, arg);
7111 return build_function_call_expr (expfn, arglist);
7128 arglist = tree_cons (NULL_TREE, arg0,
7130 return build_function_call_expr (powfn, arglist);
7150 arglist = tree_cons (NULL_TREE, arg0,
7152 return build_function_call_expr (powfn, arglist);
7170 arglist = tree_cons (NULL_TREE, arg00,
7172 return build_function_call_expr (powfn, arglist);
7182 fold_builtin_sin (tree arglist)
7184 tree arg = TREE_VALUE (arglist);
7186 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7199 fold_builtin_cos (tree arglist, tree type, tree fndecl)
7201 tree arg = TREE_VALUE (arglist);
7203 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7224 fold_builtin_tan (tree arglist)
7227 tree arg = TREE_VALUE (arglist);
7229 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7251 fold_builtin_atan (tree arglist, tree type)
7254 tree arg = TREE_VALUE (arglist);
7256 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7280 fold_builtin_trunc (tree fndecl, tree arglist)
7284 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7288 arg = TREE_VALUE (arglist);
7299 return fold_trunc_transparent_mathfn (fndecl, arglist);
7306 fold_builtin_floor (tree fndecl, tree arglist)
7310 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7314 arg = TREE_VALUE (arglist);
7330 return fold_trunc_transparent_mathfn (fndecl, arglist);
7337 fold_builtin_ceil (tree fndecl, tree arglist)
7341 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7345 arg = TREE_VALUE (arglist);
7361 return fold_trunc_transparent_mathfn (fndecl, arglist);
7368 fold_builtin_round (tree fndecl, tree arglist)
7372 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7376 arg = TREE_VALUE (arglist);
7392 return fold_trunc_transparent_mathfn (fndecl, arglist);
7400 fold_builtin_int_roundingfn (tree fndecl, tree arglist)
7404 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7408 arg = TREE_VALUE (arglist);
7448 return fold_fixed_mathfn (fndecl, arglist);
7456 fold_builtin_bitop (tree fndecl, tree arglist)
7460 if (! validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
7464 arg = TREE_VALUE (arglist);
7565 fold_builtin_logarithm (tree fndecl, tree arglist,
7568 if (validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7571 tree arg = TREE_VALUE (arglist);
7652 arglist = build_tree_list (NULL_TREE, x);
7653 logfn = build_function_call_expr (fndecl, arglist);
7665 fold_builtin_pow (tree fndecl, tree arglist, tree type)
7667 tree arg0 = TREE_VALUE (arglist);
7668 tree arg1 = TREE_VALUE (TREE_CHAIN (arglist));
7670 if (!validate_arglist (arglist, REAL_TYPE, REAL_TYPE, VOID_TYPE))
7708 tree arglist = build_tree_list (NULL_TREE, arg0);
7709 return build_function_call_expr (sqrtfn, arglist);
7737 arglist = build_tree_list (NULL_TREE, arg1);
7738 arglist = tree_cons (NULL_TREE, narg0, arglist);
7739 return build_function_call_expr (fndecl, arglist);
7755 arglist = build_tree_list (NULL_TREE, arg);
7756 return build_function_call_expr (expfn, arglist);
7766 arglist = tree_cons (NULL_TREE, narg0,
7768 return build_function_call_expr (fndecl, arglist);
7781 arglist = tree_cons (NULL_TREE, arg,
7783 return build_function_call_expr (fndecl, arglist);
7794 arglist = tree_cons (NULL_TREE, arg00,
7796 return build_function_call_expr (fndecl, arglist);
7806 fold_builtin_powi (tree fndecl ATTRIBUTE_UNUSED, tree arglist, tree type)
7808 tree arg0 = TREE_VALUE (arglist);
7809 tree arg1 = TREE_VALUE (TREE_CHAIN (arglist));
7811 if (!validate_arglist (arglist, REAL_TYPE, INTEGER_TYPE, VOID_TYPE))
7855 fold_builtin_exponent (tree fndecl, tree arglist,
7858 if (validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7861 tree arg = TREE_VALUE (arglist);
7937 fold_builtin_memset (tree arglist, tree type, bool ignore)
7942 if (!validate_arglist (arglist,
7946 dest = TREE_VALUE (arglist);
7947 c = TREE_VALUE (TREE_CHAIN (arglist));
7948 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
8011 fold_builtin_bzero (tree arglist, bool ignore)
8015 if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
8021 dest = TREE_VALUE (arglist);
8022 size = TREE_VALUE (TREE_CHAIN (arglist));
8044 fold_builtin_memory_op (tree arglist, tree type, bool ignore, int endp)
8049 if (! validate_arglist (arglist,
8053 dest = TREE_VALUE (arglist);
8054 src = TREE_VALUE (TREE_CHAIN (arglist));
8055 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
8151 fold_builtin_bcopy (tree arglist, bool ignore)
8155 if (!validate_arglist (arglist,
8162 src = TREE_VALUE (arglist);
8163 dest = TREE_VALUE (TREE_CHAIN (arglist));
8164 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
8183 fold_builtin_strcpy (tree fndecl, tree arglist, tree len)
8187 if (!validate_arglist (arglist,
8191 dest = TREE_VALUE (arglist);
8192 src = TREE_VALUE (TREE_CHAIN (arglist));
8213 arglist = build_tree_list (NULL_TREE, len);
8214 arglist = tree_cons (NULL_TREE, src, arglist);
8215 arglist = tree_cons (NULL_TREE, dest, arglist);
8217 build_function_call_expr (fn, arglist));
8225 fold_builtin_strncpy (tree fndecl, tree arglist, tree slen)
8229 if (!validate_arglist (arglist,
8233 dest = TREE_VALUE (arglist);
8234 src = TREE_VALUE (TREE_CHAIN (arglist));
8235 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
8266 build_function_call_expr (fn, arglist));
8273 fold_builtin_memcmp (tree arglist)
8278 if (!validate_arglist (arglist,
8282 arg1 = TREE_VALUE (arglist);
8283 arg2 = TREE_VALUE (TREE_CHAIN (arglist));
8284 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
8340 fold_builtin_strcmp (tree arglist)
8345 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
8348 arg1 = TREE_VALUE (arglist);
8349 arg2 = TREE_VALUE (TREE_CHAIN (arglist));
8403 fold_builtin_strncmp (tree arglist)
8408 if (!validate_arglist (arglist,
8412 arg1 = TREE_VALUE (arglist);
8413 arg2 = TREE_VALUE (TREE_CHAIN (arglist));
8414 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
8498 fold_builtin_signbit (tree fndecl, tree arglist)
8503 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
8506 arg = TREE_VALUE (arglist);
8535 fold_builtin_copysign (tree fndecl, tree arglist, tree type)
8539 if (!validate_arglist (arglist, REAL_TYPE, REAL_TYPE, VOID_TYPE))
8542 arg1 = TREE_VALUE (arglist);
8543 arg2 = TREE_VALUE (TREE_CHAIN (arglist));
8575 arglist = tree_cons (NULL_TREE, tem, TREE_CHAIN (arglist));
8576 return build_function_call_expr (fndecl, arglist);
8585 fold_builtin_isascii (tree arglist)
8587 if (! validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
8592 tree arg = TREE_VALUE (arglist);
8610 fold_builtin_toascii (tree arglist)
8612 if (! validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
8617 tree arg = TREE_VALUE (arglist);
8627 fold_builtin_isdigit (tree arglist)
8629 if (! validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
8643 arg = fold_convert (unsigned_type_node, TREE_VALUE (arglist));
8658 fold_builtin_fabs (tree arglist, tree type)
8662 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
8665 arg = TREE_VALUE (arglist);
8675 fold_builtin_abs (tree arglist, tree type)
8679 if (!validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
8682 arg = TREE_VALUE (arglist);
8693 fold_builtin_classify (tree fndecl, tree arglist, int builtin_index)
8699 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
8702 if (arglist == 0)
8708 else if (TREE_CHAIN (arglist) != 0)
8722 arg = TREE_VALUE (arglist);
8782 fold_builtin_unordered_cmp (tree fndecl, tree arglist,
8793 if (!validate_arglist (arglist, REAL_TYPE, REAL_TYPE, VOID_TYPE))
8796 if (arglist == 0 || TREE_CHAIN (arglist) == 0)
8802 else if (TREE_CHAIN (TREE_CHAIN (arglist)) != 0)
8810 arg0 = TREE_VALUE (arglist);
8811 arg1 = TREE_VALUE (TREE_CHAIN (arglist));
8856 fold_builtin_1 (tree fndecl, tree arglist, bool ignore)
8862 return targetm.fold_builtin (fndecl, arglist, ignore);
8868 return fold_builtin_fputs (arglist, ignore, false, NULL_TREE);
8871 return fold_builtin_fputs (arglist, ignore, true, NULL_TREE);
8874 return fold_builtin_strstr (arglist, type);
8877 return fold_builtin_strcat (arglist);
8880 return fold_builtin_strncat (arglist);
8883 return fold_builtin_strspn (arglist);
8886 return fold_builtin_strcspn (arglist);
8890 return fold_builtin_strchr (arglist, type);
8894 return fold_builtin_strrchr (arglist, type);
8897 return fold_builtin_strcpy (fndecl, arglist, NULL_TREE);
8900 return fold_builtin_strncpy (fndecl, arglist, NULL_TREE);
8903 return fold_builtin_strcmp (arglist);
8906 return fold_builtin_strncmp (arglist);
8909 return fold_builtin_strpbrk (arglist, type);
8913 return fold_builtin_memcmp (arglist);
8916 return fold_builtin_sprintf (arglist, ignore);
8922 val = fold_builtin_constant_p (arglist);
8933 return fold_builtin_expect (arglist);
8936 return fold_builtin_classify_type (arglist);
8939 return fold_builtin_strlen (arglist);
8942 return fold_builtin_fabs (arglist, type);
8948 return fold_builtin_abs (arglist, type);
8951 if (validate_arglist (arglist, COMPLEX_TYPE, VOID_TYPE))
8952 return fold_build1 (CONJ_EXPR, type, TREE_VALUE (arglist));
8956 if (validate_arglist (arglist, COMPLEX_TYPE, VOID_TYPE))
8958 TREE_VALUE (arglist)));
8962 if (validate_arglist (arglist, COMPLEX_TYPE, VOID_TYPE))
8964 TREE_VALUE (arglist)));
8968 return fold_builtin_cabs (arglist, type, fndecl);
8971 return fold_builtin_sqrt (arglist, type);
8974 return fold_builtin_cbrt (arglist, type);
8977 return fold_builtin_sin (arglist);
8980 return fold_builtin_cos (arglist, type, fndecl);
8983 return fold_builtin_exponent (fndecl, arglist, &dconste);
8986 return fold_builtin_exponent (fndecl, arglist, &dconst2);
8990 return fold_builtin_exponent (fndecl, arglist, &dconst10);
8993 return fold_builtin_logarithm (fndecl, arglist, &dconste);
8996 return fold_builtin_logarithm (fndecl, arglist, &dconst2);
8999 return fold_builtin_logarithm (fndecl, arglist, &dconst10);
9002 return fold_builtin_tan (arglist);
9005 return fold_builtin_atan (arglist, type);
9008 return fold_builtin_pow (fndecl, arglist, type);
9011 return fold_builtin_powi (fndecl, arglist, type);
9026 return fold_builtin_nan (arglist, type, true);
9029 return fold_builtin_nan (arglist, type, false);
9032 return fold_builtin_floor (fndecl, arglist);
9035 return fold_builtin_ceil (fndecl, arglist);
9038 return fold_builtin_trunc (fndecl, arglist);
9041 return fold_builtin_round (fndecl, arglist);
9045 return fold_trunc_transparent_mathfn (fndecl, arglist);
9053 return fold_builtin_int_roundingfn (fndecl, arglist);
9057 return fold_fixed_mathfn (fndecl, arglist);
9064 return fold_builtin_bitop (fndecl, arglist);
9067 return fold_builtin_memset (arglist, type, ignore);
9070 return fold_builtin_memory_op (arglist, type, ignore, /*endp=*/0);
9073 return fold_builtin_memory_op (arglist, type, ignore, /*endp=*/1);
9076 return fold_builtin_memory_op (arglist, type, ignore, /*endp=*/3);
9079 return fold_builtin_bzero (arglist, ignore);
9082 return fold_builtin_bcopy (arglist, ignore);
9085 return fold_builtin_signbit (fndecl, arglist);
9088 return fold_builtin_isascii (arglist);
9091 return fold_builtin_toascii (arglist);
9094 return fold_builtin_isdigit (arglist);
9097 return fold_builtin_copysign (fndecl, arglist, type);
9103 return fold_builtin_classify (fndecl, arglist, BUILT_IN_FINITE);
9109 return fold_builtin_classify (fndecl, arglist, BUILT_IN_ISINF);
9115 return fold_builtin_classify (fndecl, arglist, BUILT_IN_ISNAN);
9118 return fold_builtin_unordered_cmp (fndecl, arglist, UNLE_EXPR, LE_EXPR);
9120 return fold_builtin_unordered_cmp (fndecl, arglist, UNLT_EXPR, LT_EXPR);
9122 return fold_builtin_unordered_cmp (fndecl, arglist, UNGE_EXPR, GE_EXPR);
9124 return fold_builtin_unordered_cmp (fndecl, arglist, UNGT_EXPR, GT_EXPR);
9126 return fold_builtin_unordered_cmp (fndecl, arglist, UNEQ_EXPR, EQ_EXPR);
9128 return fold_builtin_unordered_cmp (fndecl, arglist, UNORDERED_EXPR,
9136 return fold_builtin_object_size (arglist);
9141 return fold_builtin_memory_chk (fndecl, arglist, NULL_TREE, ignore,
9145 return fold_builtin_stxcpy_chk (fndecl, arglist, NULL_TREE, ignore,
9148 return fold_builtin_strncpy_chk (arglist, NULL_TREE);
9150 return fold_builtin_strcat_chk (fndecl, arglist);
9152 return fold_builtin_strncat_chk (fndecl, arglist);
9155 return fold_builtin_sprintf_chk (arglist, DECL_FUNCTION_CODE (fndecl));
9158 return fold_builtin_snprintf_chk (arglist, NULL_TREE,
9166 return fold_builtin_printf (fndecl, arglist, ignore,
9174 return fold_builtin_fprintf (fndecl, arglist, ignore,
9189 fold_builtin (tree fndecl, tree arglist, bool ignore)
9191 tree exp = fold_builtin_1 (fndecl, arglist, ignore);
9204 build_function_call_expr (tree fn, tree arglist)
9210 call_expr, arglist, NULL_TREE);
9219 validate_arglist (tree arglist, ...)
9225 va_start (ap, arglist);
9239 res = arglist == 0;
9245 if (arglist == 0)
9249 if (! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist))))
9252 else if (code != TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))))
9256 arglist = TREE_CHAIN (arglist);
9324 fold_builtin_strstr (tree arglist, tree type)
9326 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
9330 tree s1 = TREE_VALUE (arglist), s2 = TREE_VALUE (TREE_CHAIN (arglist));
9367 arglist = build_tree_list (NULL_TREE,
9369 arglist = tree_cons (NULL_TREE, s1, arglist);
9370 return build_function_call_expr (fn, arglist);
9392 fold_builtin_strchr (tree arglist, tree type)
9394 if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
9398 tree s1 = TREE_VALUE (arglist), s2 = TREE_VALUE (TREE_CHAIN (arglist));
9446 fold_builtin_strrchr (tree arglist, tree type)
9448 if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
9452 tree s1 = TREE_VALUE (arglist), s2 = TREE_VALUE (TREE_CHAIN (arglist));
9488 return build_function_call_expr (fn, arglist);
9510 fold_builtin_strpbrk (tree arglist, tree type)
9512 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
9516 tree s1 = TREE_VALUE (arglist), s2 = TREE_VALUE (TREE_CHAIN (arglist));
9553 arglist = build_tree_list (NULL_TREE,
9555 arglist = tree_cons (NULL_TREE, s1, arglist);
9556 return build_function_call_expr (fn, arglist);
9578 fold_builtin_strcat (tree arglist)
9580 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
9584 tree dst = TREE_VALUE (arglist),
9585 src = TREE_VALUE (TREE_CHAIN (arglist));
9614 fold_builtin_strncat (tree arglist)
9616 if (!validate_arglist (arglist,
9621 tree dst = TREE_VALUE (arglist);
9622 tree src = TREE_VALUE (TREE_CHAIN (arglist));
9623 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
9669 fold_builtin_strspn (tree arglist)
9671 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
9675 tree s1 = TREE_VALUE (arglist), s2 = TREE_VALUE (TREE_CHAIN (arglist));
9713 fold_builtin_strcspn (tree arglist)
9715 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
9719 tree s1 = TREE_VALUE (arglist), s2 = TREE_VALUE (TREE_CHAIN (arglist));
9762 fold_builtin_fputs (tree arglist, bool ignore, bool unlocked, tree len)
9777 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
9781 len = c_strlen (TREE_VALUE (arglist), 0);
9793 TREE_VALUE (TREE_CHAIN (arglist)));
9797 const char *p = c_getstr (TREE_VALUE (arglist));
9803 arglist = build_tree_list (NULL_TREE,
9804 TREE_VALUE (TREE_CHAIN (arglist)));
9805 arglist = tree_cons (NULL_TREE,
9807 arglist);
9820 string_arg = TREE_VALUE (arglist);
9823 arglist = build_tree_list (NULL_TREE,
9824 TREE_VALUE (TREE_CHAIN (arglist)));
9825 arglist = tree_cons (NULL_TREE, len, arglist);
9826 arglist = tree_cons (NULL_TREE, size_one_node, arglist);
9827 arglist = tree_cons (NULL_TREE, string_arg, arglist);
9842 return build_function_call_expr (fn, arglist);
9849 fold_builtin_next_arg (tree arglist)
9860 else if (!arglist)
9869 else if (!TREE_CHAIN (arglist)
9870 || !integer_zerop (TREE_VALUE (arglist))
9871 || !integer_zerop (TREE_VALUE (TREE_CHAIN (arglist)))
9872 || TREE_CHAIN (TREE_CHAIN (arglist)))
9875 tree arg = TREE_VALUE (arglist);
9877 if (TREE_CHAIN (arglist))
9906 TREE_VALUE (arglist) = integer_zero_node;
9907 TREE_CHAIN (arglist) = build_tree_list (NULL, integer_zero_node);
9920 fold_builtin_sprintf (tree arglist, int ignored)
9928 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE)
9929 && !validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, POINTER_TYPE,
9934 dest = TREE_VALUE (arglist);
9935 fmt = TREE_VALUE (TREE_CHAIN (arglist));
9936 arglist = TREE_CHAIN (TREE_CHAIN (arglist));
9958 if (arglist)
9963 arglist = build_tree_list (NULL_TREE, fmt);
9964 arglist = tree_cons (NULL_TREE, dest, arglist);
9965 call = build_function_call_expr (fn, arglist);
9980 if (!arglist)
9984 orig = TREE_VALUE (arglist);
9985 arglist = build_tree_list (NULL_TREE, orig);
9986 arglist = tree_cons (NULL_TREE, dest, arglist);
9993 call = build_function_call_expr (fn, arglist);
10015 tree arglist = TREE_OPERAND (exp, 1);
10018 if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
10026 ost = TREE_VALUE (TREE_CHAIN (arglist));
10054 tree arglist = TREE_OPERAND (exp, 1);
10057 if (!validate_arglist (arglist,
10064 dest = TREE_VALUE (arglist);
10065 src = TREE_VALUE (TREE_CHAIN (arglist));
10066 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
10067 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
10084 arglist = build_tree_list (NULL_TREE, len);
10085 arglist = tree_cons (NULL_TREE, src, arglist);
10086 arglist = tree_cons (NULL_TREE, dest, arglist);
10112 fn = build_function_call_expr (fn, arglist);
10161 fn = build_function_call_expr (fn, arglist);
10177 tree arglist = TREE_OPERAND (exp, 1), a;
10204 for (a = arglist; a && arg_mask; a = TREE_CHAIN (a), arg_mask >>= 1)
10242 tree arglist = TREE_OPERAND (exp, 1);
10247 if (! arglist)
10249 dest = TREE_VALUE (arglist);
10250 arglist = TREE_CHAIN (arglist);
10251 if (! arglist)
10253 flag = TREE_VALUE (arglist);
10254 arglist = TREE_CHAIN (arglist);
10255 if (! arglist)
10257 size = TREE_VALUE (arglist);
10258 arglist = TREE_CHAIN (arglist);
10259 if (! arglist)
10261 fmt = TREE_VALUE (arglist);
10262 arglist = TREE_CHAIN (arglist);
10284 if (! arglist)
10286 arg = TREE_VALUE (arglist);
10308 fold_builtin_object_size (tree arglist)
10313 if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
10316 ptr = TREE_VALUE (arglist);
10317 ost = TREE_VALUE (TREE_CHAIN (arglist));
10368 fold_builtin_memory_chk (tree fndecl, tree arglist, tree maxlen, bool ignore,
10373 if (!validate_arglist (arglist,
10380 dest = TREE_VALUE (arglist);
10382 src = TREE_VALUE (TREE_CHAIN (arglist));
10383 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
10384 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
10420 return build_function_call_expr (fn, arglist);
10432 arglist = build_tree_list (NULL_TREE, len);
10433 arglist = tree_cons (NULL_TREE, src, arglist);
10434 arglist = tree_cons (NULL_TREE, dest, arglist);
10460 return build_function_call_expr (fn, arglist);
10469 fold_builtin_stxcpy_chk (tree fndecl, tree arglist, tree maxlen, bool ignore,
10474 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE,
10478 dest = TREE_VALUE (arglist);
10479 src = TREE_VALUE (TREE_CHAIN (arglist));
10480 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
10510 return build_function_call_expr (fn, arglist);
10523 arglist = build_tree_list (NULL_TREE, size);
10524 arglist = tree_cons (NULL_TREE, len, arglist);
10525 arglist = tree_cons (NULL_TREE, src, arglist);
10526 arglist = tree_cons (NULL_TREE, dest, arglist);
10528 build_function_call_expr (fn, arglist));
10538 arglist = build_tree_list (NULL_TREE, src);
10539 arglist = tree_cons (NULL_TREE, dest, arglist);
10547 return build_function_call_expr (fn, arglist);
10554 fold_builtin_strncpy_chk (tree arglist, tree maxlen)
10558 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE,
10562 dest = TREE_VALUE (arglist);
10563 src = TREE_VALUE (TREE_CHAIN (arglist));
10564 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
10565 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
10587 arglist = build_tree_list (NULL_TREE, len);
10588 arglist = tree_cons (NULL_TREE, src, arglist);
10589 arglist = tree_cons (NULL_TREE, dest, arglist);
10596 return build_function_call_expr (fn, arglist);
10602 fold_builtin_strcat_chk (tree fndecl, tree arglist)
10607 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE,
10611 dest = TREE_VALUE (arglist);
10612 src = TREE_VALUE (TREE_CHAIN (arglist));
10613 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
10623 arglist = build_tree_list (NULL_TREE, src);
10624 arglist = tree_cons (NULL_TREE, dest, arglist);
10631 return build_function_call_expr (fn, arglist);
10637 fold_builtin_strncat_chk (tree fndecl, tree arglist)
10642 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE,
10646 dest = TREE_VALUE (arglist);
10647 src = TREE_VALUE (TREE_CHAIN (arglist));
10648 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
10649 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
10674 arglist = build_tree_list (NULL_TREE, size);
10675 arglist = tree_cons (NULL_TREE, src, arglist);
10676 arglist = tree_cons (NULL_TREE, dest, arglist);
10677 return build_function_call_expr (fn, arglist);
10682 arglist = build_tree_list (NULL_TREE, len);
10683 arglist = tree_cons (NULL_TREE, src, arglist);
10684 arglist = tree_cons (NULL_TREE, dest, arglist);
10691 return build_function_call_expr (fn, arglist);
10699 fold_builtin_sprintf_chk (tree arglist, enum built_in_function fcode)
10705 if (! arglist)
10707 dest = TREE_VALUE (arglist);
10710 arglist = TREE_CHAIN (arglist);
10711 if (! arglist)
10713 flag = TREE_VALUE (arglist);
10716 arglist = TREE_CHAIN (arglist);
10717 if (! arglist)
10719 size = TREE_VALUE (arglist);
10722 arglist = TREE_CHAIN (arglist);
10723 if (! arglist)
10725 fmt = TREE_VALUE (arglist);
10728 arglist = TREE_CHAIN (arglist);
10745 if (fcode != BUILT_IN_SPRINTF_CHK || arglist == NULL_TREE)
10754 if (arglist && !TREE_CHAIN (arglist))
10756 arg = TREE_VALUE (arglist);
10783 arglist = tree_cons (NULL_TREE, fmt, arglist);
10784 arglist = tree_cons (NULL_TREE, dest, arglist);
10792 return build_function_call_expr (fn, arglist);
10802 fold_builtin_snprintf_chk (tree arglist, tree maxlen,
10809 if (! arglist)
10811 dest = TREE_VALUE (arglist);
10814 arglist = TREE_CHAIN (arglist);
10815 if (! arglist)
10817 len = TREE_VALUE (arglist);
10820 arglist = TREE_CHAIN (arglist);
10821 if (! arglist)
10823 flag = TREE_VALUE (arglist);
10826 arglist = TREE_CHAIN (arglist);
10827 if (! arglist)
10829 size = TREE_VALUE (arglist);
10832 arglist = TREE_CHAIN (arglist);
10833 if (! arglist)
10835 fmt = TREE_VALUE (arglist);
10838 arglist = TREE_CHAIN (arglist);
10874 arglist = tree_cons (NULL_TREE, fmt, arglist);
10875 arglist = tree_cons (NULL_TREE, len, arglist);
10876 arglist = tree_cons (NULL_TREE, dest, arglist);
10885 return build_function_call_expr (fn, arglist);
10895 fold_builtin_printf (tree fndecl, tree arglist, bool ignore,
10910 if (! arglist)
10912 flag = TREE_VALUE (arglist);
10916 arglist = TREE_CHAIN (arglist);
10919 if (! arglist)
10921 fmt = TREE_VALUE (arglist);
10924 arglist = TREE_CHAIN (arglist);
10956 if (! arglist
10957 || ! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist)))
10958 || TREE_CHAIN (arglist))
10961 str = c_getstr (TREE_VALUE (arglist));
10969 && arglist)
10985 arglist = build_tree_list (NULL_TREE, arg);
11001 arglist = build_tree_list (NULL_TREE, arg);
11018 if (! arglist
11019 || ! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist)))
11020 || TREE_CHAIN (arglist))
11028 if (! arglist
11029 || TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != INTEGER_TYPE
11030 || TREE_CHAIN (arglist))
11038 call = build_function_call_expr (fn, arglist);
11049 fold_builtin_fprintf (tree fndecl, tree arglist, bool ignore,
11060 if (! arglist)
11062 fp = TREE_VALUE (arglist);
11065 arglist = TREE_CHAIN (arglist);
11071 if (! arglist)
11073 flag = TREE_VALUE (arglist);
11077 arglist = TREE_CHAIN (arglist);
11080 if (! arglist)
11082 fmt = TREE_VALUE (arglist);
11085 arglist = TREE_CHAIN (arglist);
11112 && arglist)
11129 arglist = build_tree_list (NULL_TREE, fp);
11130 arglist = tree_cons (NULL_TREE, fmt, arglist);
11141 if (! arglist
11142 || ! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist)))
11143 || TREE_CHAIN (arglist))
11145 arg = TREE_VALUE (arglist);
11146 arglist = build_tree_list (NULL_TREE, fp);
11147 arglist = tree_cons (NULL_TREE, arg, arglist);
11154 if (! arglist
11155 || TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != INTEGER_TYPE
11156 || TREE_CHAIN (arglist))
11158 arg = TREE_VALUE (arglist);
11159 arglist = build_tree_list (NULL_TREE, fp);
11160 arglist = tree_cons (NULL_TREE, arg, arglist);
11167 call = build_function_call_expr (fn, arglist);