Jakub,

Thanks a lot for your comments, I will fix all these issues in the next version.

Qing

> On Sep 27, 2024, at 10:18, Jakub Jelinek <ja...@redhat.com> wrote:
> 
> On Fri, Sep 27, 2024 at 02:01:19PM +0000, Qing Zhao wrote:
>> +  /* Currently, only when the array_ref is an indirect_ref to a call to the
>> +     .ACCESS_WITH_SIZE, return true.
>> +     More cases can be included later when the counted_by attribute is
>> +     extended to other situations.  */
>> +  if ((TREE_CODE (array_ref) == INDIRECT_REF)
> 
> The ()s around the == are useless.
> 
>> +      && is_access_with_size_p (TREE_OPERAND (array_ref, 0)))
>> +    return true;
>> +  return false;
>> +}
>> +
>> +/* Get the reference to the counted-by object associated with the 
>> ARRAY_REF.  */
>> +static tree
>> +get_counted_by_ref (tree array_ref)
>> +{
>> +  /* Currently, only when the array_ref is an indirect_ref to a call to the
>> +     .ACCESS_WITH_SIZE, get the corresponding counted_by ref.
>> +     More cases can be included later when the counted_by attribute is
>> +     extended to other situations.  */
>> +  if ((TREE_CODE (array_ref) == INDIRECT_REF)
> 
> Again.
> 
>> +    if (TREE_CODE (TREE_TYPE (ref)) != ARRAY_TYPE)
>> +      {
>> + error_at (loc, "the argument must be an array"
>> +       "%<__builtin_counted_by_ref%>");
>> + expr.set_error ();
>> + break;
>> +      }
>> +
>> +    /* if the array ref is inside TYPEOF or ALIGNOF, the call to
> 
> Comments should start with capital letter, i.e. If
> 
>> +       .ACCESS_WITH_SIZE was not genereated by the routine
> 
> s/genereated/generated/
> 
>> +       build_component_ref by default, we should generate it here.  */
>> +    if ((in_typeof || in_alignof)
> && TREE_CODE (ref) == COMPONENT_REF)
> 
> The above && ... fits on the same line as the rest of the condition.
> 
>> +      ref = handle_counted_by_for_component_ref (loc, ref);
>> +
>> +    if (has_counted_by_object (ref))
>> +      expr.value
>> + = get_counted_by_ref (ref);
> 
> This too.
> 
>> +    else
>> +      expr.value
>> + = build_int_cst (build_pointer_type (void_type_node), 0);
> 
>    else
>      expr.value = null_pointer_node;
> instead.
> 
>> +/*
>> + * For the COMPONENT_REF ref, check whether it has a counted_by attribute,
>> + * if so, wrap this COMPONENT_REF with the corresponding CALL to the
>> + * function .ACCESS_WITH_SIZE.
>> + * Otherwise, return the ref itself.
>> + */
> 
> We don't use this style of comments.  No *s at the start of each line, /*
> should be immediately followed after space with the first line and */
> should be right after . and two spaces.
> 
> Jakub
> 

Reply via email to