Lines Matching defs:arglist

832 expand_builtin_nonlocal_goto (tree arglist)
837 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
840 t_label = TREE_VALUE (arglist);
841 arglist = TREE_CHAIN (arglist);
842 t_save_area = TREE_VALUE (arglist);
942 expand_builtin_prefetch (tree arglist)
947 if (!validate_arglist (arglist, POINTER_TYPE, 0))
950 arg0 = TREE_VALUE (arglist);
954 if (TREE_CHAIN (arglist))
956 arg1 = TREE_VALUE (TREE_CHAIN (arglist));
957 if (TREE_CHAIN (TREE_CHAIN (arglist)))
958 arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
1611 expand_builtin_classify_type (tree arglist)
1613 if (arglist != 0)
1614 return GEN_INT (type_to_class (TREE_TYPE (TREE_VALUE (arglist))));
1780 tree arglist = TREE_OPERAND (exp, 1);
1785 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
1788 arg = TREE_VALUE (arglist);
1862 arglist = build_tree_list (NULL_TREE, arg);
1863 exp = build_function_call_expr (fndecl, arglist);
1952 tree arglist = TREE_OPERAND (exp, 1);
1963 if (!validate_arglist (arglist, REAL_TYPE, op1_type, VOID_TYPE))
1966 arg0 = TREE_VALUE (arglist);
1967 arg1 = TREE_VALUE (TREE_CHAIN (arglist));
2006 temp = TREE_CHAIN (arglist);
2012 arglist = tree_cons (NULL_TREE, narg, temp);
2016 arglist = tree_cons (NULL_TREE, arg0, temp);
2019 exp = build_function_call_expr (fndecl, arglist);
2064 tree arglist = TREE_OPERAND (exp, 1);
2068 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
2071 arg = TREE_VALUE (arglist);
2111 arglist = build_tree_list (NULL_TREE, arg);
2112 exp = build_function_call_expr (fndecl, arglist);
2172 tree arglist = TREE_OPERAND (exp, 1);
2177 if (!validate_arglist (arglist, REAL_TYPE,
2181 arg = TREE_VALUE (arglist);
2182 sinp = TREE_VALUE (TREE_CHAIN (arglist));
2183 cosp = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
2224 tree arglist = TREE_OPERAND (exp, 1);
2230 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
2233 arg = TREE_VALUE (arglist);
2268 arglist = build_tree_list (NULL_TREE, arg);
2269 exp = build_function_call_expr (fndecl, arglist);
2299 exp = build_function_call_expr (fallback_fndecl, arglist);
2524 tree arglist = TREE_OPERAND (exp, 1);
2527 if (! validate_arglist (arglist, REAL_TYPE, REAL_TYPE, VOID_TYPE))
2530 arg0 = TREE_VALUE (arglist);
2531 arg1 = TREE_VALUE (TREE_CHAIN (arglist));
2574 tree arglist = TREE_OPERAND (exp, 1);
2580 if (! validate_arglist (arglist, REAL_TYPE, INTEGER_TYPE, VOID_TYPE))
2583 arg0 = TREE_VALUE (arglist);
2584 arg1 = TREE_VALUE (TREE_CHAIN (arglist));
2635 expand_builtin_strlen (tree arglist, rtx target,
2638 if (!validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
2643 tree len, src = TREE_VALUE (arglist);
2743 expand_builtin_strstr (tree arglist, tree type, rtx target, enum machine_mode mode)
2745 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
2747 tree result = fold_builtin_strstr (arglist, type);
2759 expand_builtin_strchr (tree arglist, tree type, rtx target, enum machine_mode mode)
2761 if (validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
2763 tree result = fold_builtin_strchr (arglist, type);
2777 expand_builtin_strrchr (tree arglist, tree type, rtx target, enum machine_mode mode)
2779 if (validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
2781 tree result = fold_builtin_strrchr (arglist, type);
2793 expand_builtin_strpbrk (tree arglist, tree type, rtx target, enum machine_mode mode)
2795 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
2797 tree result = fold_builtin_strpbrk (arglist, type);
2829 tree arglist = TREE_OPERAND (exp, 1);
2830 if (!validate_arglist (arglist,
2835 tree dest = TREE_VALUE (arglist);
2836 tree src = TREE_VALUE (TREE_CHAIN (arglist));
2837 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
2843 tree result = fold_builtin_memory_op (arglist, TREE_TYPE (TREE_TYPE (fndecl)),
2914 expand_builtin_mempcpy (tree arglist, tree type, rtx target, enum machine_mode mode,
2917 if (!validate_arglist (arglist,
2928 return expand_expr (build_function_call_expr (fn, arglist),
2933 tree dest = TREE_VALUE (arglist);
2934 tree src = TREE_VALUE (TREE_CHAIN (arglist));
2935 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
2941 tree result = fold_builtin_memory_op (arglist, type, false, endp);
3008 expand_builtin_memmove (tree arglist, tree type, rtx target,
3011 if (!validate_arglist (arglist,
3016 tree dest = TREE_VALUE (arglist);
3017 tree src = TREE_VALUE (TREE_CHAIN (arglist));
3018 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
3023 tree result = fold_builtin_memory_op (arglist, type, false, /*endp=*/3);
3052 fn = build_function_call_expr (fn, arglist);
3062 rtx ret = expand_builtin_mempcpy (arglist, type, target, mode,
3079 tree arglist = TREE_OPERAND (exp, 1);
3083 if (!validate_arglist (arglist,
3087 src = TREE_VALUE (arglist);
3088 dest = TREE_VALUE (TREE_CHAIN (arglist));
3089 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
3176 expand_builtin_strcpy (tree fndecl, tree arglist, rtx target, enum machine_mode mode)
3178 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
3180 tree result = fold_builtin_strcpy (fndecl, arglist, 0);
3192 return expand_movstr (TREE_VALUE (arglist),
3193 TREE_VALUE (TREE_CHAIN (arglist)),
3207 tree arglist = TREE_OPERAND (exp, 1);
3215 return expand_expr (build_function_call_expr (fn, arglist),
3219 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
3231 src = TREE_VALUE (TREE_CHAIN (arglist));
3233 return expand_movstr (TREE_VALUE (arglist),
3234 TREE_VALUE (TREE_CHAIN (arglist)),
3237 dst = TREE_VALUE (arglist);
3255 arglist, target, mode);
3278 return expand_movstr (TREE_VALUE (arglist),
3279 TREE_VALUE (TREE_CHAIN (arglist)),
3307 tree arglist = TREE_OPERAND (exp, 1);
3308 if (validate_arglist (arglist,
3311 tree slen = c_strlen (TREE_VALUE (TREE_CHAIN (arglist)), 1);
3312 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
3313 tree result = fold_builtin_strncpy (fndecl, arglist, slen);
3337 tree dest = TREE_VALUE (arglist);
3340 const char *p = c_getstr (TREE_VALUE (TREE_CHAIN (arglist)));
3409 expand_builtin_memset (tree arglist, rtx target, enum machine_mode mode,
3412 if (!validate_arglist (arglist,
3417 tree dest = TREE_VALUE (arglist);
3418 tree val = TREE_VALUE (TREE_CHAIN (arglist));
3419 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
3517 arglist = build_tree_list (NULL_TREE, len);
3519 arglist = tree_cons (NULL_TREE, val, arglist);
3520 arglist = tree_cons (NULL_TREE, dest, arglist);
3521 fn = build_function_call_expr (fndecl, arglist);
3534 tree arglist = TREE_OPERAND (exp, 1);
3537 if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
3540 dest = TREE_VALUE (arglist);
3541 size = TREE_VALUE (TREE_CHAIN (arglist));
3561 expand_builtin_memcmp (tree exp ATTRIBUTE_UNUSED, tree arglist, rtx target,
3564 if (!validate_arglist (arglist,
3569 tree result = fold_builtin_memcmp (arglist);
3576 tree arg1 = TREE_VALUE (arglist);
3577 tree arg2 = TREE_VALUE (TREE_CHAIN (arglist));
3578 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
3672 tree arglist = TREE_OPERAND (exp, 1);
3674 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
3678 tree result = fold_builtin_strcmp (arglist);
3691 tree arg1 = TREE_VALUE (arglist);
3692 tree arg2 = TREE_VALUE (TREE_CHAIN (arglist));
3805 arglist = build_tree_list (NULL_TREE, arg2);
3806 arglist = tree_cons (NULL_TREE, arg1, arglist);
3808 fn = build_function_call_expr (fndecl, arglist);
3824 tree arglist = TREE_OPERAND (exp, 1);
3826 if (!validate_arglist (arglist,
3831 tree result = fold_builtin_strncmp (arglist);
3842 tree arg1 = TREE_VALUE (arglist);
3843 tree arg2 = TREE_VALUE (TREE_CHAIN (arglist));
3844 tree arg3 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
3934 arglist = build_tree_list (NULL_TREE, len);
3935 arglist = tree_cons (NULL_TREE, arg2, arglist);
3936 arglist = tree_cons (NULL_TREE, arg1, arglist);
3938 fn = build_function_call_expr (fndecl, arglist);
3952 expand_builtin_strcat (tree fndecl, tree arglist, rtx target, enum machine_mode mode)
3954 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
3958 tree dst = TREE_VALUE (arglist),
3959 src = TREE_VALUE (TREE_CHAIN (arglist));
3976 arglist = build_tree_list (NULL_TREE, newsrc);
3978 arglist = TREE_CHAIN (arglist); /* Reusing arglist if safe. */
3993 arglist = tree_cons (NULL_TREE, newdst, arglist);
3995 if (!expand_builtin_strcpy (fndecl, arglist, target, mode))
4018 expand_builtin_strncat (tree arglist, rtx target, enum machine_mode mode)
4020 if (validate_arglist (arglist,
4023 tree result = fold_builtin_strncat (arglist);
4035 expand_builtin_strspn (tree arglist, rtx target, enum machine_mode mode)
4037 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
4039 tree result = fold_builtin_strspn (arglist);
4051 expand_builtin_strcspn (tree arglist, rtx target, enum machine_mode mode)
4053 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
4055 tree result = fold_builtin_strcspn (arglist);
4104 expand_builtin_args_info (tree arglist)
4111 if (arglist != 0)
4113 if (!host_integerp (TREE_VALUE (arglist), 0))
4117 HOST_WIDE_INT wordnum = tree_low_cst (TREE_VALUE (arglist), 0);
4213 expand_builtin_va_start (tree arglist)
4218 chain = TREE_CHAIN (arglist);
4230 valist = stabilize_va_list (TREE_VALUE (arglist), 1);
4454 expand_builtin_va_end (tree arglist)
4456 tree valist = TREE_VALUE (arglist);
4471 expand_builtin_va_copy (tree arglist)
4475 dst = TREE_VALUE (arglist);
4476 src = TREE_VALUE (TREE_CHAIN (arglist));
4519 expand_builtin_frame_address (tree fndecl, tree arglist)
4524 if (arglist == 0)
4527 else if (! host_integerp (TREE_VALUE (arglist), 1))
4539 tree_low_cst (TREE_VALUE (arglist), 1));
4567 expand_builtin_alloca (tree arglist, rtx target)
4578 if (!validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
4582 op0 = expand_normal (TREE_VALUE (arglist));
4597 expand_builtin_unop (enum machine_mode target_mode, tree arglist, rtx target,
4601 if (!validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
4605 op0 = expand_expr (TREE_VALUE (arglist), subtarget, VOIDmode, 0);
4608 target = expand_unop (TYPE_MODE (TREE_TYPE (TREE_VALUE (arglist))),
4619 expand_builtin_fputs (tree arglist, rtx target, bool unlocked)
4622 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
4624 tree result = fold_builtin_fputs (arglist, (target == const0_rtx),
4637 expand_builtin_expect (tree arglist, rtx target)
4642 if (arglist == NULL_TREE
4643 || TREE_CHAIN (arglist) == NULL_TREE)
4645 exp = TREE_VALUE (arglist);
4646 c = TREE_VALUE (TREE_CHAIN (arglist));
4683 tree arglist = TREE_OPERAND (exp, 1);
4684 tree arg0 = TREE_VALUE (arglist);
4685 tree arg1 = TREE_VALUE (TREE_CHAIN (arglist));
4810 expand_builtin_fabs (tree arglist, rtx target, rtx subtarget)
4816 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
4819 arg = TREE_VALUE (arglist);
4831 expand_builtin_copysign (tree arglist, rtx target, rtx subtarget)
4836 if (!validate_arglist (arglist, REAL_TYPE, REAL_TYPE, VOID_TYPE))
4839 arg = TREE_VALUE (arglist);
4842 arg = TREE_VALUE (TREE_CHAIN (arglist));
4882 tree arglist = TREE_OPERAND (exp, 1);
4897 if (! arglist)
4899 fmt = TREE_VALUE (arglist);
4902 arglist = TREE_CHAIN (arglist);
4915 if (! arglist
4916 || ! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist)))
4917 || TREE_CHAIN (arglist))
4924 if (! arglist
4925 || TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != INTEGER_TYPE
4926 || TREE_CHAIN (arglist))
4936 if (arglist)
4949 arglist = build_tree_list (NULL_TREE, arg);
4965 arglist = build_tree_list (NULL_TREE, arg);
4977 fn = build_function_call_expr (fn, arglist);
4992 tree arglist = TREE_OPERAND (exp, 1);
5007 if (! arglist)
5009 fp = TREE_VALUE (arglist);
5012 arglist = TREE_CHAIN (arglist);
5013 if (! arglist)
5015 fmt = TREE_VALUE (arglist);
5018 arglist = TREE_CHAIN (arglist);
5031 if (! arglist
5032 || ! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist)))
5033 || TREE_CHAIN (arglist))
5035 arg = TREE_VALUE (arglist);
5036 arglist = build_tree_list (NULL_TREE, fp);
5037 arglist = tree_cons (NULL_TREE, arg, arglist);
5043 if (! arglist
5044 || TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != INTEGER_TYPE
5045 || TREE_CHAIN (arglist))
5047 arg = TREE_VALUE (arglist);
5048 arglist = build_tree_list (NULL_TREE, fp);
5049 arglist = tree_cons (NULL_TREE, arg, arglist);
5058 if (arglist)
5072 arglist = build_tree_list (NULL_TREE, fp);
5073 arglist = tree_cons (NULL_TREE, fmt, arglist);
5079 fn = build_function_call_expr (fn, arglist);
5091 expand_builtin_sprintf (tree arglist, rtx target, enum machine_mode mode)
5096 orig_arglist = arglist;
5099 if (! arglist)
5101 dest = TREE_VALUE (arglist);
5104 arglist = TREE_CHAIN (arglist);
5105 if (! arglist)
5107 fmt = TREE_VALUE (arglist);
5110 arglist = TREE_CHAIN (arglist);
5126 if (arglist || ! fn)
5144 if (! arglist || TREE_CHAIN (arglist))
5146 arg = TREE_VALUE (arglist);
5159 arglist = build_tree_list (NULL_TREE, arg);
5160 arglist = tree_cons (NULL_TREE, dest, arglist);
5161 expand_expr (build_function_call_expr (fn, arglist),
5222 expand_builtin_init_trampoline (tree arglist)
5230 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE,
5234 t_tramp = TREE_VALUE (arglist);
5235 arglist = TREE_CHAIN (arglist);
5236 t_func = TREE_VALUE (arglist);
5237 arglist = TREE_CHAIN (arglist);
5238 t_chain = TREE_VALUE (arglist);
5259 expand_builtin_adjust_trampoline (tree arglist)
5263 if (!validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
5266 tramp = expand_normal (TREE_VALUE (arglist));
5286 tree arg, arglist;
5290 arglist = TREE_OPERAND (exp, 1);
5291 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
5294 arg = TREE_VALUE (arglist);
5382 expand_builtin_fork_or_exec (tree fn, tree arglist, rtx target, int ignore)
5436 call = build_function_call_expr (decl, arglist);
5490 expand_builtin_sync_operation (enum machine_mode mode, tree arglist,
5498 mem = get_builtin_sync_mem (TREE_VALUE (arglist), mode);
5500 arglist = TREE_CHAIN (arglist);
5501 val = expand_expr (TREE_VALUE (arglist), NULL, mode, EXPAND_NORMAL);
5506 old_mode = TYPE_MODE (TREE_TYPE (TREE_VALUE (arglist)));
5521 expand_builtin_compare_and_swap (enum machine_mode mode, tree arglist,
5528 mem = get_builtin_sync_mem (TREE_VALUE (arglist), mode);
5530 arglist = TREE_CHAIN (arglist);
5531 old_val = expand_expr (TREE_VALUE (arglist), NULL, mode, EXPAND_NORMAL);
5536 old_mode = TYPE_MODE (TREE_TYPE (TREE_VALUE (arglist)));
5539 arglist = TREE_CHAIN (arglist);
5540 new_val = expand_expr (TREE_VALUE (arglist), NULL, mode, EXPAND_NORMAL);
5545 old_mode = TYPE_MODE (TREE_TYPE (TREE_VALUE (arglist)));
5561 expand_builtin_lock_test_and_set (enum machine_mode mode, tree arglist,
5568 mem = get_builtin_sync_mem (TREE_VALUE (arglist), mode);
5570 arglist = TREE_CHAIN (arglist);
5571 val = expand_expr (TREE_VALUE (arglist), NULL, mode, EXPAND_NORMAL);
5576 old_mode = TYPE_MODE (TREE_TYPE (TREE_VALUE (arglist)));
5609 expand_builtin_lock_release (enum machine_mode mode, tree arglist)
5616 mem = get_builtin_sync_mem (TREE_VALUE (arglist), mode);
5651 tree arglist = TREE_OPERAND (exp, 1);
5680 for (arg = arglist; arg; arg = TREE_CHAIN (arg))
5689 for (arg = arglist; arg; arg = TREE_CHAIN (arg))
5699 target = expand_builtin_fabs (arglist, target, subtarget);
5705 target = expand_builtin_copysign (arglist, target, subtarget);
5811 if (!validate_arglist (arglist, POINTER_TYPE,
5813 && !validate_arglist (arglist, REFERENCE_TYPE,
5822 for (t = arglist, i = 0; t; t = TREE_CHAIN (t), i++)
5832 if (validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
5833 expand_builtin_return (expand_normal (TREE_VALUE (arglist)));
5840 return expand_builtin_args_info (arglist);
5844 if (fold_builtin_next_arg (arglist))
5849 return expand_builtin_classify_type (arglist);
5856 return expand_builtin_frame_address (fndecl, arglist);
5861 if (arglist != 0
5869 target = expand_builtin_alloca (arglist, target);
5878 expand_stack_restore (TREE_VALUE (arglist));
5883 target = expand_builtin_unop (target_mode, arglist, target,
5891 target = expand_builtin_unop (target_mode, arglist, target,
5899 target = expand_builtin_unop (target_mode, arglist, target,
5907 target = expand_builtin_unop (target_mode, arglist, target,
5915 target = expand_builtin_unop (target_mode, arglist, target,
5922 target = expand_builtin_strlen (arglist, target, target_mode);
5928 target = expand_builtin_strcpy (fndecl, arglist, target, mode);
5946 target = expand_builtin_strcat (fndecl, arglist, target, mode);
5952 target = expand_builtin_strncat (arglist, target, mode);
5958 target = expand_builtin_strspn (arglist, target, mode);
5964 target = expand_builtin_strcspn (arglist, target, mode);
5970 target = expand_builtin_strstr (arglist, TREE_TYPE (exp), target, mode);
5976 target = expand_builtin_strpbrk (arglist, TREE_TYPE (exp), target, mode);
5983 target = expand_builtin_strchr (arglist, TREE_TYPE (exp), target, mode);
5990 target = expand_builtin_strrchr (arglist, TREE_TYPE (exp), target, mode);
6002 target = expand_builtin_mempcpy (arglist, TREE_TYPE (exp), target, mode, /*endp=*/ 1);
6008 target = expand_builtin_memmove (arglist, TREE_TYPE (exp), target,
6021 target = expand_builtin_memset (arglist, target, mode, exp);
6046 target = expand_builtin_memcmp (exp, arglist, target, mode);
6058 if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
6060 rtx buf_addr = expand_expr (TREE_VALUE (arglist), subtarget,
6062 tree label = TREE_OPERAND (TREE_VALUE (TREE_CHAIN (arglist)), 0);
6080 if (validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
6082 tree label = TREE_OPERAND (TREE_VALUE (arglist), 0);
6094 if (validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
6096 tree label = TREE_OPERAND (TREE_VALUE (arglist), 0);
6108 if (validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
6110 rtx buf_addr = expand_expr (TREE_VALUE (arglist), subtarget,
6112 rtx value = expand_normal (TREE_VALUE (TREE_CHAIN (arglist)));
6126 target = expand_builtin_nonlocal_goto (arglist);
6134 if (validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
6137 = expand_normal (TREE_VALUE (arglist));
6161 target = expand_builtin_fputs (arglist, target, false);
6166 target = expand_builtin_fputs (arglist, target, true);
6184 target = expand_builtin_sprintf (arglist, target, mode);
6205 expand_builtin_init_dwarf_reg_sizes (TREE_VALUE (arglist));
6209 return expand_builtin_frob_return_addr (TREE_VALUE (arglist));
6211 return expand_builtin_extract_return_addr (TREE_VALUE (arglist));
6213 expand_builtin_eh_return (TREE_VALUE (arglist),
6214 TREE_VALUE (TREE_CHAIN (arglist)));
6218 return expand_builtin_eh_return_data_regno (arglist);
6221 return expand_builtin_extend_pointer (TREE_VALUE (arglist));
6225 return expand_builtin_va_start (arglist);
6227 return expand_builtin_va_end (arglist);
6229 return expand_builtin_va_copy (arglist);
6231 return expand_builtin_expect (arglist, target);
6233 expand_builtin_prefetch (arglist);
6242 return expand_builtin_init_trampoline (arglist);
6244 return expand_builtin_adjust_trampoline (arglist);
6253 target = expand_builtin_fork_or_exec (fndecl, arglist, target, ignore);
6264 target = expand_builtin_sync_operation (mode, arglist, PLUS,
6276 target = expand_builtin_sync_operation (mode, arglist, MINUS,
6288 target = expand_builtin_sync_operation (mode, arglist, IOR,
6300 target = expand_builtin_sync_operation (mode, arglist, AND,
6312 target = expand_builtin_sync_operation (mode, arglist, XOR,
6324 target = expand_builtin_sync_operation (mode, arglist, NOT,
6336 target = expand_builtin_sync_operation (mode, arglist, PLUS,
6348 target = expand_builtin_sync_operation (mode, arglist, MINUS,
6360 target = expand_builtin_sync_operation (mode, arglist, IOR,
6372 target = expand_builtin_sync_operation (mode, arglist, AND,
6384 target = expand_builtin_sync_operation (mode, arglist, XOR,
6396 target = expand_builtin_sync_operation (mode, arglist, NOT,
6413 target = expand_builtin_compare_and_swap (mode, arglist, true, target);
6424 target = expand_builtin_compare_and_swap (mode, arglist, false, target);
6435 target = expand_builtin_lock_test_and_set (mode, arglist, target);
6446 expand_builtin_lock_release (mode, arglist);
6497 tree fndecl, arglist, parmlist;
6511 arglist = TREE_OPERAND (t, 1);
6520 if (arglist)
6525 if (! arglist)
6528 argtype = TREE_TYPE (TREE_VALUE (arglist));
6553 arglist = TREE_CHAIN (arglist);
6564 fold_builtin_constant_p (tree arglist)
6566 if (arglist == 0)
6569 arglist = TREE_VALUE (arglist);
6574 STRIP_NOPS (arglist);
6577 if (CONSTANT_CLASS_P (arglist)
6578 || (TREE_CODE (arglist) == CONSTRUCTOR
6579 && TREE_CONSTANT (arglist)))
6581 if (TREE_CODE (arglist) == ADDR_EXPR)
6583 tree op = TREE_OPERAND (arglist, 0);
6598 if (TREE_SIDE_EFFECTS (arglist)
6599 || AGGREGATE_TYPE_P (TREE_TYPE (arglist))
6600 || POINTER_TYPE_P (TREE_TYPE (arglist))
6614 fold_builtin_expect (tree arglist)
6618 if (arglist == 0)
6621 arg = TREE_VALUE (arglist);
6649 fold_builtin_classify_type (tree arglist)
6651 if (arglist == 0)
6655 type_to_class (TREE_TYPE (TREE_VALUE (arglist))));
6661 fold_builtin_strlen (tree arglist)
6663 if (!validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
6667 tree len = c_strlen (TREE_VALUE (arglist), 0);
6705 fold_builtin_nan (tree arglist, tree type, int quiet)
6710 if (!validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
6712 str = c_getstr (TREE_VALUE (arglist));
6803 fold_trunc_transparent_mathfn (tree fndecl, tree arglist)
6808 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
6811 arg = TREE_VALUE (arglist);
6831 arglist =
6834 build_function_call_expr (decl, arglist));
6844 fold_fixed_mathfn (tree fndecl, tree arglist)
6849 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
6852 arg = TREE_VALUE (arglist);
6869 arglist =
6871 return build_function_call_expr (decl, arglist);
6905 tree newcall = build_function_call_expr (newfn, arglist);
6919 fold_builtin_cabs (tree arglist, tree type, tree fndecl)
6923 if (!arglist || TREE_CHAIN (arglist))
6926 arg = TREE_VALUE (arglist);
6964 tree arglist = build_tree_list (NULL_TREE, TREE_OPERAND (arg, 0));
6965 return build_function_call_expr (fndecl, arglist);
6976 tree rpart, ipart, result, arglist;
6992 arglist = build_tree_list (NULL_TREE, result);
6993 return build_function_call_expr (sqrtfn, arglist);
7004 fold_builtin_sqrt (tree arglist, tree type)
7008 tree arg = TREE_VALUE (arglist);
7010 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7033 arglist = build_tree_list (NULL_TREE, arg);
7034 return build_function_call_expr (expfn, arglist);
7054 arglist = tree_cons (NULL_TREE, arg0,
7056 return build_function_call_expr (powfn, arglist);
7074 arglist = tree_cons (NULL_TREE, arg0,
7076 return build_function_call_expr (powfn, arglist);
7085 fold_builtin_cbrt (tree arglist, tree type)
7087 tree arg = TREE_VALUE (arglist);
7090 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7108 arglist = build_tree_list (NULL_TREE, arg);
7109 return build_function_call_expr (expfn, arglist);
7126 arglist = tree_cons (NULL_TREE, arg0,
7128 return build_function_call_expr (powfn, arglist);
7148 arglist = tree_cons (NULL_TREE, arg0,
7150 return build_function_call_expr (powfn, arglist);
7168 arglist = tree_cons (NULL_TREE, arg00,
7170 return build_function_call_expr (powfn, arglist);
7180 fold_builtin_sin (tree arglist)
7182 tree arg = TREE_VALUE (arglist);
7184 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7197 fold_builtin_cos (tree arglist, tree type, tree fndecl)
7199 tree arg = TREE_VALUE (arglist);
7201 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7222 fold_builtin_tan (tree arglist)
7225 tree arg = TREE_VALUE (arglist);
7227 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7249 fold_builtin_atan (tree arglist, tree type)
7252 tree arg = TREE_VALUE (arglist);
7254 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7278 fold_builtin_trunc (tree fndecl, tree arglist)
7282 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7286 arg = TREE_VALUE (arglist);
7297 return fold_trunc_transparent_mathfn (fndecl, arglist);
7304 fold_builtin_floor (tree fndecl, tree arglist)
7308 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7312 arg = TREE_VALUE (arglist);
7328 return fold_trunc_transparent_mathfn (fndecl, arglist);
7335 fold_builtin_ceil (tree fndecl, tree arglist)
7339 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7343 arg = TREE_VALUE (arglist);
7359 return fold_trunc_transparent_mathfn (fndecl, arglist);
7366 fold_builtin_round (tree fndecl, tree arglist)
7370 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7374 arg = TREE_VALUE (arglist);
7390 return fold_trunc_transparent_mathfn (fndecl, arglist);
7398 fold_builtin_int_roundingfn (tree fndecl, tree arglist)
7402 if (! validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7406 arg = TREE_VALUE (arglist);
7446 return fold_fixed_mathfn (fndecl, arglist);
7454 fold_builtin_bitop (tree fndecl, tree arglist)
7458 if (! validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
7462 arg = TREE_VALUE (arglist);
7563 fold_builtin_logarithm (tree fndecl, tree arglist,
7566 if (validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7569 tree arg = TREE_VALUE (arglist);
7650 arglist = build_tree_list (NULL_TREE, x);
7651 logfn = build_function_call_expr (fndecl, arglist);
7663 fold_builtin_pow (tree fndecl, tree arglist, tree type)
7665 tree arg0 = TREE_VALUE (arglist);
7666 tree arg1 = TREE_VALUE (TREE_CHAIN (arglist));
7668 if (!validate_arglist (arglist, REAL_TYPE, REAL_TYPE, VOID_TYPE))
7706 tree arglist = build_tree_list (NULL_TREE, arg0);
7707 return build_function_call_expr (sqrtfn, arglist);
7735 arglist = build_tree_list (NULL_TREE, arg1);
7736 arglist = tree_cons (NULL_TREE, narg0, arglist);
7737 return build_function_call_expr (fndecl, arglist);
7753 arglist = build_tree_list (NULL_TREE, arg);
7754 return build_function_call_expr (expfn, arglist);
7764 arglist = tree_cons (NULL_TREE, narg0,
7766 return build_function_call_expr (fndecl, arglist);
7779 arglist = tree_cons (NULL_TREE, arg,
7781 return build_function_call_expr (fndecl, arglist);
7792 arglist = tree_cons (NULL_TREE, arg00,
7794 return build_function_call_expr (fndecl, arglist);
7804 fold_builtin_powi (tree fndecl ATTRIBUTE_UNUSED, tree arglist, tree type)
7806 tree arg0 = TREE_VALUE (arglist);
7807 tree arg1 = TREE_VALUE (TREE_CHAIN (arglist));
7809 if (!validate_arglist (arglist, REAL_TYPE, INTEGER_TYPE, VOID_TYPE))
7853 fold_builtin_exponent (tree fndecl, tree arglist,
7856 if (validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
7859 tree arg = TREE_VALUE (arglist);
7935 fold_builtin_memset (tree arglist, tree type, bool ignore)
7940 if (!validate_arglist (arglist,
7944 dest = TREE_VALUE (arglist);
7945 c = TREE_VALUE (TREE_CHAIN (arglist));
7946 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
8009 fold_builtin_bzero (tree arglist, bool ignore)
8013 if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
8019 dest = TREE_VALUE (arglist);
8020 size = TREE_VALUE (TREE_CHAIN (arglist));
8042 fold_builtin_memory_op (tree arglist, tree type, bool ignore, int endp)
8047 if (! validate_arglist (arglist,
8051 dest = TREE_VALUE (arglist);
8052 src = TREE_VALUE (TREE_CHAIN (arglist));
8053 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
8149 fold_builtin_bcopy (tree arglist, bool ignore)
8153 if (!validate_arglist (arglist,
8160 src = TREE_VALUE (arglist);
8161 dest = TREE_VALUE (TREE_CHAIN (arglist));
8162 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
8181 fold_builtin_strcpy (tree fndecl, tree arglist, tree len)
8185 if (!validate_arglist (arglist,
8189 dest = TREE_VALUE (arglist);
8190 src = TREE_VALUE (TREE_CHAIN (arglist));
8211 arglist = build_tree_list (NULL_TREE, len);
8212 arglist = tree_cons (NULL_TREE, src, arglist);
8213 arglist = tree_cons (NULL_TREE, dest, arglist);
8215 build_function_call_expr (fn, arglist));
8223 fold_builtin_strncpy (tree fndecl, tree arglist, tree slen)
8227 if (!validate_arglist (arglist,
8231 dest = TREE_VALUE (arglist);
8232 src = TREE_VALUE (TREE_CHAIN (arglist));
8233 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
8264 build_function_call_expr (fn, arglist));
8271 fold_builtin_memcmp (tree arglist)
8276 if (!validate_arglist (arglist,
8280 arg1 = TREE_VALUE (arglist);
8281 arg2 = TREE_VALUE (TREE_CHAIN (arglist));
8282 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
8338 fold_builtin_strcmp (tree arglist)
8343 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
8346 arg1 = TREE_VALUE (arglist);
8347 arg2 = TREE_VALUE (TREE_CHAIN (arglist));
8401 fold_builtin_strncmp (tree arglist)
8406 if (!validate_arglist (arglist,
8410 arg1 = TREE_VALUE (arglist);
8411 arg2 = TREE_VALUE (TREE_CHAIN (arglist));
8412 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
8496 fold_builtin_signbit (tree fndecl, tree arglist)
8501 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
8504 arg = TREE_VALUE (arglist);
8533 fold_builtin_copysign (tree fndecl, tree arglist, tree type)
8537 if (!validate_arglist (arglist, REAL_TYPE, REAL_TYPE, VOID_TYPE))
8540 arg1 = TREE_VALUE (arglist);
8541 arg2 = TREE_VALUE (TREE_CHAIN (arglist));
8573 arglist = tree_cons (NULL_TREE, tem, TREE_CHAIN (arglist));
8574 return build_function_call_expr (fndecl, arglist);
8583 fold_builtin_isascii (tree arglist)
8585 if (! validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
8590 tree arg = TREE_VALUE (arglist);
8608 fold_builtin_toascii (tree arglist)
8610 if (! validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
8615 tree arg = TREE_VALUE (arglist);
8625 fold_builtin_isdigit (tree arglist)
8627 if (! validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
8641 arg = fold_convert (unsigned_type_node, TREE_VALUE (arglist));
8656 fold_builtin_fabs (tree arglist, tree type)
8660 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
8663 arg = TREE_VALUE (arglist);
8673 fold_builtin_abs (tree arglist, tree type)
8677 if (!validate_arglist (arglist, INTEGER_TYPE, VOID_TYPE))
8680 arg = TREE_VALUE (arglist);
8691 fold_builtin_classify (tree fndecl, tree arglist, int builtin_index)
8697 if (!validate_arglist (arglist, REAL_TYPE, VOID_TYPE))
8700 if (arglist == 0)
8706 else if (TREE_CHAIN (arglist) != 0)
8720 arg = TREE_VALUE (arglist);
8780 fold_builtin_unordered_cmp (tree fndecl, tree arglist,
8791 if (!validate_arglist (arglist, REAL_TYPE, REAL_TYPE, VOID_TYPE))
8794 if (arglist == 0 || TREE_CHAIN (arglist) == 0)
8800 else if (TREE_CHAIN (TREE_CHAIN (arglist)) != 0)
8808 arg0 = TREE_VALUE (arglist);
8809 arg1 = TREE_VALUE (TREE_CHAIN (arglist));
8854 fold_builtin_1 (tree fndecl, tree arglist, bool ignore)
8860 return targetm.fold_builtin (fndecl, arglist, ignore);
8866 return fold_builtin_fputs (arglist, ignore, false, NULL_TREE);
8869 return fold_builtin_fputs (arglist, ignore, true, NULL_TREE);
8872 return fold_builtin_strstr (arglist, type);
8875 return fold_builtin_strcat (arglist);
8878 return fold_builtin_strncat (arglist);
8881 return fold_builtin_strspn (arglist);
8884 return fold_builtin_strcspn (arglist);
8888 return fold_builtin_strchr (arglist, type);
8892 return fold_builtin_strrchr (arglist, type);
8895 return fold_builtin_strcpy (fndecl, arglist, NULL_TREE);
8898 return fold_builtin_strncpy (fndecl, arglist, NULL_TREE);
8901 return fold_builtin_strcmp (arglist);
8904 return fold_builtin_strncmp (arglist);
8907 return fold_builtin_strpbrk (arglist, type);
8911 return fold_builtin_memcmp (arglist);
8914 return fold_builtin_sprintf (arglist, ignore);
8920 val = fold_builtin_constant_p (arglist);
8931 return fold_builtin_expect (arglist);
8934 return fold_builtin_classify_type (arglist);
8937 return fold_builtin_strlen (arglist);
8940 return fold_builtin_fabs (arglist, type);
8946 return fold_builtin_abs (arglist, type);
8949 if (validate_arglist (arglist, COMPLEX_TYPE, VOID_TYPE))
8950 return fold_build1 (CONJ_EXPR, type, TREE_VALUE (arglist));
8954 if (validate_arglist (arglist, COMPLEX_TYPE, VOID_TYPE))
8956 TREE_VALUE (arglist)));
8960 if (validate_arglist (arglist, COMPLEX_TYPE, VOID_TYPE))
8962 TREE_VALUE (arglist)));
8966 return fold_builtin_cabs (arglist, type, fndecl);
8969 return fold_builtin_sqrt (arglist, type);
8972 return fold_builtin_cbrt (arglist, type);
8975 return fold_builtin_sin (arglist);
8978 return fold_builtin_cos (arglist, type, fndecl);
8981 return fold_builtin_exponent (fndecl, arglist, &dconste);
8984 return fold_builtin_exponent (fndecl, arglist, &dconst2);
8988 return fold_builtin_exponent (fndecl, arglist, &dconst10);
8991 return fold_builtin_logarithm (fndecl, arglist, &dconste);
8994 return fold_builtin_logarithm (fndecl, arglist, &dconst2);
8997 return fold_builtin_logarithm (fndecl, arglist, &dconst10);
9000 return fold_builtin_tan (arglist);
9003 return fold_builtin_atan (arglist, type);
9006 return fold_builtin_pow (fndecl, arglist, type);
9009 return fold_builtin_powi (fndecl, arglist, type);
9024 return fold_builtin_nan (arglist, type, true);
9027 return fold_builtin_nan (arglist, type, false);
9030 return fold_builtin_floor (fndecl, arglist);
9033 return fold_builtin_ceil (fndecl, arglist);
9036 return fold_builtin_trunc (fndecl, arglist);
9039 return fold_builtin_round (fndecl, arglist);
9043 return fold_trunc_transparent_mathfn (fndecl, arglist);
9051 return fold_builtin_int_roundingfn (fndecl, arglist);
9055 return fold_fixed_mathfn (fndecl, arglist);
9062 return fold_builtin_bitop (fndecl, arglist);
9065 return fold_builtin_memset (arglist, type, ignore);
9068 return fold_builtin_memory_op (arglist, type, ignore, /*endp=*/0);
9071 return fold_builtin_memory_op (arglist, type, ignore, /*endp=*/1);
9074 return fold_builtin_memory_op (arglist, type, ignore, /*endp=*/3);
9077 return fold_builtin_bzero (arglist, ignore);
9080 return fold_builtin_bcopy (arglist, ignore);
9083 return fold_builtin_signbit (fndecl, arglist);
9086 return fold_builtin_isascii (arglist);
9089 return fold_builtin_toascii (arglist);
9092 return fold_builtin_isdigit (arglist);
9095 return fold_builtin_copysign (fndecl, arglist, type);
9101 return fold_builtin_classify (fndecl, arglist, BUILT_IN_FINITE);
9107 return fold_builtin_classify (fndecl, arglist, BUILT_IN_ISINF);
9113 return fold_builtin_classify (fndecl, arglist, BUILT_IN_ISNAN);
9116 return fold_builtin_unordered_cmp (fndecl, arglist, UNLE_EXPR, LE_EXPR);
9118 return fold_builtin_unordered_cmp (fndecl, arglist, UNLT_EXPR, LT_EXPR);
9120 return fold_builtin_unordered_cmp (fndecl, arglist, UNGE_EXPR, GE_EXPR);
9122 return fold_builtin_unordered_cmp (fndecl, arglist, UNGT_EXPR, GT_EXPR);
9124 return fold_builtin_unordered_cmp (fndecl, arglist, UNEQ_EXPR, EQ_EXPR);
9126 return fold_builtin_unordered_cmp (fndecl, arglist, UNORDERED_EXPR,
9134 return fold_builtin_object_size (arglist);
9139 return fold_builtin_memory_chk (fndecl, arglist, NULL_TREE, ignore,
9143 return fold_builtin_stxcpy_chk (fndecl, arglist, NULL_TREE, ignore,
9146 return fold_builtin_strncpy_chk (arglist, NULL_TREE);
9148 return fold_builtin_strcat_chk (fndecl, arglist);
9150 return fold_builtin_strncat_chk (fndecl, arglist);
9153 return fold_builtin_sprintf_chk (arglist, DECL_FUNCTION_CODE (fndecl));
9156 return fold_builtin_snprintf_chk (arglist, NULL_TREE,
9164 return fold_builtin_printf (fndecl, arglist, ignore,
9172 return fold_builtin_fprintf (fndecl, arglist, ignore,
9187 fold_builtin (tree fndecl, tree arglist, bool ignore)
9189 tree exp = fold_builtin_1 (fndecl, arglist, ignore);
9202 build_function_call_expr (tree fn, tree arglist)
9208 call_expr, arglist, NULL_TREE);
9217 validate_arglist (tree arglist, ...)
9223 va_start (ap, arglist);
9237 res = arglist == 0;
9243 if (arglist == 0)
9247 if (! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist))))
9250 else if (code != TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))))
9254 arglist = TREE_CHAIN (arglist);
9322 fold_builtin_strstr (tree arglist, tree type)
9324 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
9328 tree s1 = TREE_VALUE (arglist), s2 = TREE_VALUE (TREE_CHAIN (arglist));
9365 arglist = build_tree_list (NULL_TREE,
9367 arglist = tree_cons (NULL_TREE, s1, arglist);
9368 return build_function_call_expr (fn, arglist);
9390 fold_builtin_strchr (tree arglist, tree type)
9392 if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
9396 tree s1 = TREE_VALUE (arglist), s2 = TREE_VALUE (TREE_CHAIN (arglist));
9444 fold_builtin_strrchr (tree arglist, tree type)
9446 if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
9450 tree s1 = TREE_VALUE (arglist), s2 = TREE_VALUE (TREE_CHAIN (arglist));
9486 return build_function_call_expr (fn, arglist);
9508 fold_builtin_strpbrk (tree arglist, tree type)
9510 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
9514 tree s1 = TREE_VALUE (arglist), s2 = TREE_VALUE (TREE_CHAIN (arglist));
9551 arglist = build_tree_list (NULL_TREE,
9553 arglist = tree_cons (NULL_TREE, s1, arglist);
9554 return build_function_call_expr (fn, arglist);
9576 fold_builtin_strcat (tree arglist)
9578 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
9582 tree dst = TREE_VALUE (arglist),
9583 src = TREE_VALUE (TREE_CHAIN (arglist));
9612 fold_builtin_strncat (tree arglist)
9614 if (!validate_arglist (arglist,
9619 tree dst = TREE_VALUE (arglist);
9620 tree src = TREE_VALUE (TREE_CHAIN (arglist));
9621 tree len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
9667 fold_builtin_strspn (tree arglist)
9669 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
9673 tree s1 = TREE_VALUE (arglist), s2 = TREE_VALUE (TREE_CHAIN (arglist));
9711 fold_builtin_strcspn (tree arglist)
9713 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
9717 tree s1 = TREE_VALUE (arglist), s2 = TREE_VALUE (TREE_CHAIN (arglist));
9760 fold_builtin_fputs (tree arglist, bool ignore, bool unlocked, tree len)
9775 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
9779 len = c_strlen (TREE_VALUE (arglist), 0);
9791 TREE_VALUE (TREE_CHAIN (arglist)));
9795 const char *p = c_getstr (TREE_VALUE (arglist));
9801 arglist = build_tree_list (NULL_TREE,
9802 TREE_VALUE (TREE_CHAIN (arglist)));
9803 arglist = tree_cons (NULL_TREE,
9805 arglist);
9818 string_arg = TREE_VALUE (arglist);
9821 arglist = build_tree_list (NULL_TREE,
9822 TREE_VALUE (TREE_CHAIN (arglist)));
9823 arglist = tree_cons (NULL_TREE, len, arglist);
9824 arglist = tree_cons (NULL_TREE, size_one_node, arglist);
9825 arglist = tree_cons (NULL_TREE, string_arg, arglist);
9840 return build_function_call_expr (fn, arglist);
9847 fold_builtin_next_arg (tree arglist)
9858 else if (!arglist)
9867 else if (!TREE_CHAIN (arglist)
9868 || !integer_zerop (TREE_VALUE (arglist))
9869 || !integer_zerop (TREE_VALUE (TREE_CHAIN (arglist)))
9870 || TREE_CHAIN (TREE_CHAIN (arglist)))
9873 tree arg = TREE_VALUE (arglist);
9875 if (TREE_CHAIN (arglist))
9904 TREE_VALUE (arglist) = integer_zero_node;
9905 TREE_CHAIN (arglist) = build_tree_list (NULL, integer_zero_node);
9918 fold_builtin_sprintf (tree arglist, int ignored)
9926 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE)
9927 && !validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, POINTER_TYPE,
9932 dest = TREE_VALUE (arglist);
9933 fmt = TREE_VALUE (TREE_CHAIN (arglist));
9934 arglist = TREE_CHAIN (TREE_CHAIN (arglist));
9956 if (arglist)
9961 arglist = build_tree_list (NULL_TREE, fmt);
9962 arglist = tree_cons (NULL_TREE, dest, arglist);
9963 call = build_function_call_expr (fn, arglist);
9978 if (!arglist)
9982 orig = TREE_VALUE (arglist);
9983 arglist = build_tree_list (NULL_TREE, orig);
9984 arglist = tree_cons (NULL_TREE, dest, arglist);
9991 call = build_function_call_expr (fn, arglist);
10013 tree arglist = TREE_OPERAND (exp, 1);
10016 if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
10024 ost = TREE_VALUE (TREE_CHAIN (arglist));
10052 tree arglist = TREE_OPERAND (exp, 1);
10055 if (!validate_arglist (arglist,
10062 dest = TREE_VALUE (arglist);
10063 src = TREE_VALUE (TREE_CHAIN (arglist));
10064 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
10065 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
10082 arglist = build_tree_list (NULL_TREE, len);
10083 arglist = tree_cons (NULL_TREE, src, arglist);
10084 arglist = tree_cons (NULL_TREE, dest, arglist);
10110 fn = build_function_call_expr (fn, arglist);
10159 fn = build_function_call_expr (fn, arglist);
10175 tree arglist = TREE_OPERAND (exp, 1), a;
10202 for (a = arglist; a && arg_mask; a = TREE_CHAIN (a), arg_mask >>= 1)
10240 tree arglist = TREE_OPERAND (exp, 1);
10245 if (! arglist)
10247 dest = TREE_VALUE (arglist);
10248 arglist = TREE_CHAIN (arglist);
10249 if (! arglist)
10251 flag = TREE_VALUE (arglist);
10252 arglist = TREE_CHAIN (arglist);
10253 if (! arglist)
10255 size = TREE_VALUE (arglist);
10256 arglist = TREE_CHAIN (arglist);
10257 if (! arglist)
10259 fmt = TREE_VALUE (arglist);
10260 arglist = TREE_CHAIN (arglist);
10282 if (! arglist)
10284 arg = TREE_VALUE (arglist);
10306 fold_builtin_object_size (tree arglist)
10311 if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
10314 ptr = TREE_VALUE (arglist);
10315 ost = TREE_VALUE (TREE_CHAIN (arglist));
10366 fold_builtin_memory_chk (tree fndecl, tree arglist, tree maxlen, bool ignore,
10371 if (!validate_arglist (arglist,
10378 dest = TREE_VALUE (arglist);
10380 src = TREE_VALUE (TREE_CHAIN (arglist));
10381 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
10382 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
10418 return build_function_call_expr (fn, arglist);
10430 arglist = build_tree_list (NULL_TREE, len);
10431 arglist = tree_cons (NULL_TREE, src, arglist);
10432 arglist = tree_cons (NULL_TREE, dest, arglist);
10458 return build_function_call_expr (fn, arglist);
10467 fold_builtin_stxcpy_chk (tree fndecl, tree arglist, tree maxlen, bool ignore,
10472 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE,
10476 dest = TREE_VALUE (arglist);
10477 src = TREE_VALUE (TREE_CHAIN (arglist));
10478 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
10508 return build_function_call_expr (fn, arglist);
10521 arglist = build_tree_list (NULL_TREE, size);
10522 arglist = tree_cons (NULL_TREE, len, arglist);
10523 arglist = tree_cons (NULL_TREE, src, arglist);
10524 arglist = tree_cons (NULL_TREE, dest, arglist);
10526 build_function_call_expr (fn, arglist));
10536 arglist = build_tree_list (NULL_TREE, src);
10537 arglist = tree_cons (NULL_TREE, dest, arglist);
10545 return build_function_call_expr (fn, arglist);
10552 fold_builtin_strncpy_chk (tree arglist, tree maxlen)
10556 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE,
10560 dest = TREE_VALUE (arglist);
10561 src = TREE_VALUE (TREE_CHAIN (arglist));
10562 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
10563 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
10585 arglist = build_tree_list (NULL_TREE, len);
10586 arglist = tree_cons (NULL_TREE, src, arglist);
10587 arglist = tree_cons (NULL_TREE, dest, arglist);
10594 return build_function_call_expr (fn, arglist);
10600 fold_builtin_strcat_chk (tree fndecl, tree arglist)
10605 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE,
10609 dest = TREE_VALUE (arglist);
10610 src = TREE_VALUE (TREE_CHAIN (arglist));
10611 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
10621 arglist = build_tree_list (NULL_TREE, src);
10622 arglist = tree_cons (NULL_TREE, dest, arglist);
10629 return build_function_call_expr (fn, arglist);
10635 fold_builtin_strncat_chk (tree fndecl, tree arglist)
10640 if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE,
10644 dest = TREE_VALUE (arglist);
10645 src = TREE_VALUE (TREE_CHAIN (arglist));
10646 len = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
10647 size = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
10672 arglist = build_tree_list (NULL_TREE, size);
10673 arglist = tree_cons (NULL_TREE, src, arglist);
10674 arglist = tree_cons (NULL_TREE, dest, arglist);
10675 return build_function_call_expr (fn, arglist);
10680 arglist = build_tree_list (NULL_TREE, len);
10681 arglist = tree_cons (NULL_TREE, src, arglist);
10682 arglist = tree_cons (NULL_TREE, dest, arglist);
10689 return build_function_call_expr (fn, arglist);
10697 fold_builtin_sprintf_chk (tree arglist, enum built_in_function fcode)
10703 if (! arglist)
10705 dest = TREE_VALUE (arglist);
10708 arglist = TREE_CHAIN (arglist);
10709 if (! arglist)
10711 flag = TREE_VALUE (arglist);
10714 arglist = TREE_CHAIN (arglist);
10715 if (! arglist)
10717 size = TREE_VALUE (arglist);
10720 arglist = TREE_CHAIN (arglist);
10721 if (! arglist)
10723 fmt = TREE_VALUE (arglist);
10726 arglist = TREE_CHAIN (arglist);
10743 if (fcode != BUILT_IN_SPRINTF_CHK || arglist == NULL_TREE)
10752 if (arglist && !TREE_CHAIN (arglist))
10754 arg = TREE_VALUE (arglist);
10781 arglist = tree_cons (NULL_TREE, fmt, arglist);
10782 arglist = tree_cons (NULL_TREE, dest, arglist);
10790 return build_function_call_expr (fn, arglist);
10800 fold_builtin_snprintf_chk (tree arglist, tree maxlen,
10807 if (! arglist)
10809 dest = TREE_VALUE (arglist);
10812 arglist = TREE_CHAIN (arglist);
10813 if (! arglist)
10815 len = TREE_VALUE (arglist);
10818 arglist = TREE_CHAIN (arglist);
10819 if (! arglist)
10821 flag = TREE_VALUE (arglist);
10824 arglist = TREE_CHAIN (arglist);
10825 if (! arglist)
10827 size = TREE_VALUE (arglist);
10830 arglist = TREE_CHAIN (arglist);
10831 if (! arglist)
10833 fmt = TREE_VALUE (arglist);
10836 arglist = TREE_CHAIN (arglist);
10872 arglist = tree_cons (NULL_TREE, fmt, arglist);
10873 arglist = tree_cons (NULL_TREE, len, arglist);
10874 arglist = tree_cons (NULL_TREE, dest, arglist);
10883 return build_function_call_expr (fn, arglist);
10893 fold_builtin_printf (tree fndecl, tree arglist, bool ignore,
10908 if (! arglist)
10910 flag = TREE_VALUE (arglist);
10914 arglist = TREE_CHAIN (arglist);
10917 if (! arglist)
10919 fmt = TREE_VALUE (arglist);
10922 arglist = TREE_CHAIN (arglist);
10954 if (! arglist
10955 || ! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist)))
10956 || TREE_CHAIN (arglist))
10959 str = c_getstr (TREE_VALUE (arglist));
10967 && arglist)
10983 arglist = build_tree_list (NULL_TREE, arg);
10999 arglist = build_tree_list (NULL_TREE, arg);
11016 if (! arglist
11017 || ! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist)))
11018 || TREE_CHAIN (arglist))
11026 if (! arglist
11027 || TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != INTEGER_TYPE
11028 || TREE_CHAIN (arglist))
11036 call = build_function_call_expr (fn, arglist);
11047 fold_builtin_fprintf (tree fndecl, tree arglist, bool ignore,
11058 if (! arglist)
11060 fp = TREE_VALUE (arglist);
11063 arglist = TREE_CHAIN (arglist);
11069 if (! arglist)
11071 flag = TREE_VALUE (arglist);
11075 arglist = TREE_CHAIN (arglist);
11078 if (! arglist)
11080 fmt = TREE_VALUE (arglist);
11083 arglist = TREE_CHAIN (arglist);
11110 && arglist)
11127 arglist = build_tree_list (NULL_TREE, fp);
11128 arglist = tree_cons (NULL_TREE, fmt, arglist);
11139 if (! arglist
11140 || ! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist)))
11141 || TREE_CHAIN (arglist))
11143 arg = TREE_VALUE (arglist);
11144 arglist = build_tree_list (NULL_TREE, fp);
11145 arglist = tree_cons (NULL_TREE, arg, arglist);
11152 if (! arglist
11153 || TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != INTEGER_TYPE
11154 || TREE_CHAIN (arglist))
11156 arg = TREE_VALUE (arglist);
11157 arglist = build_tree_list (NULL_TREE, fp);
11158 arglist = tree_cons (NULL_TREE, arg, arglist);
11165 call = build_function_call_expr (fn, arglist);