if (prototype_p (type))
{
/* The format arg can be any string reference valid for the language and
- target. We cannot be more specific in this case. */
+ target. We cannot be more specific in this case. */
if (!check_format_string (type, format_num, flags, no_add_attrs, -1))
return NULL_TREE;
}
static void check_format_info_main (format_check_results *,
function_format_info *,
const char *, int, tree,
- unsigned HOST_WIDE_INT, alloc_pool);
+ unsigned HOST_WIDE_INT,
+ pool_allocator<format_wanted_type> &);
static void init_dollar_format_checking (int, tree);
static int maybe_read_dollar_number (const char **, int,
const char *format_chars;
tree array_size = 0;
tree array_init;
- alloc_pool fwt_pool;
if (TREE_CODE (format_tree) == VAR_DECL)
{
{
bool objc_str = (info->format_type == gcc_objc_string_format_type);
/* We cannot examine this string here - but we can check that it is
- a valid type. */
+ a valid type. */
if (TREE_CODE (format_tree) != CONST_DECL
|| !((objc_str && objc_string_ref_type_p (TREE_TYPE (format_tree)))
|| (*targetcm.string_object_ref_type_p)
++arg_num;
}
/* So, we have a valid literal string object and one or more params.
- We need to use an external helper to parse the string into format
- info. For Objective-C variants we provide the resource within the
- objc tree, for target variants, via a hook. */
+ We need to use an external helper to parse the string into format
+ info. For Objective-C variants we provide the resource within the
+ objc tree, for target variants, via a hook. */
if (objc_str)
objc_check_format_arg (format_tree, params);
else if (targetcm.check_string_object_format_arg)
will decrement it if it finds there are extra arguments, but this way
need not adjust it for every return. */
res->number_other++;
- fwt_pool = create_alloc_pool ("format_wanted_type pool",
- sizeof (format_wanted_type), 10);
+ pool_allocator <format_wanted_type> fwt_pool ("format_wanted_type pool", 10);
check_format_info_main (res, info, format_chars, format_length,
- params, arg_num, fwt_pool);
- free_alloc_pool (fwt_pool);
+ params, arg_num, fwt_pool);
}
check_format_info_main (format_check_results *res,
function_format_info *info, const char *format_chars,
int format_length, tree params,
- unsigned HOST_WIDE_INT arg_num, alloc_pool fwt_pool)
+ unsigned HOST_WIDE_INT arg_num,
+ pool_allocator<format_wanted_type> &fwt_pool)
{
const char *orig_format_chars = format_chars;
tree first_fillin_param = params;
fci = fci->chain;
if (fci)
{
- wanted_type_ptr = (format_wanted_type *)
- pool_alloc (fwt_pool);
+ wanted_type_ptr = fwt_pool.allocate ();
arg_num++;
wanted_type = *fci->types[length_chars_val].type;
wanted_type_name = fci->types[length_chars_val].name;