diff mbox series

update get_range_strlen description

Message ID 8de8f5f3-08b9-0c4f-a391-7ac752b1aac8@gmail.com
State New
Headers show
Series update get_range_strlen description | expand

Commit Message

Martin Sebor June 6, 2019, 7:32 p.m. UTC
Hi Jeff,

It looks like the updated comment for get_range_strlen didn't make
it into the strlen fixup commits last December and the function
still has the old description.  (Not surprising given there are
at least two overloads of the same function and things moving
between them.)  I'm going to check in the comment from the patch
here: https://gcc.gnu.org/ml/gcc-patches/2018-11/msg02050.html
with an additional sentence describing ELTSIZE.

Let me know if you'd like me to tweak it or if spot something
else.

Thanks
Martin

Comments

Marek Polacek June 6, 2019, 8:23 p.m. UTC | #1
On Thu, Jun 06, 2019 at 01:32:14PM -0600, Martin Sebor wrote:
> Hi Jeff,
> 
> It looks like the updated comment for get_range_strlen didn't make
> it into the strlen fixup commits last December and the function
> still has the old description.  (Not surprising given there are
> at least two overloads of the same function and things moving
> between them.)  I'm going to check in the comment from the patch
> here: https://gcc.gnu.org/ml/gcc-patches/2018-11/msg02050.html
> with an additional sentence describing ELTSIZE.
> 
> Let me know if you'd like me to tweak it or if spot something
> else.
> 
> Thanks
> Martin

> gcc/ChangeLog:
> 
> 	* gimple-fold.c (get_range_strlen): Update comment that didn't
> 	make it into r267503 or related commits.
> 	
> diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
> index b3e931744f8..18860bb7c28 100644
> --- a/gcc/gimple-fold.c
> +++ b/gcc/gimple-fold.c
> @@ -1672,30 +1672,16 @@ get_range_strlen (tree arg, bitmap *visited,
>      }
>  }
>  
> -/* Determine the minimum and maximum value or string length that ARG
> -   refers to and store each in the first two elements of MINMAXLEN.
> -   For expressions that point to strings of unknown lengths that are
> -   character arrays, use the upper bound of the array as the maximum
> -   length.  For example, given an expression like 'x ? array : "xyz"'
> -   and array declared as 'char array[8]', MINMAXLEN[0] will be set
> -   to 0 and MINMAXLEN[1] to 7, the longest string that could be
> -   stored in array.
> -   Return true if the range of the string lengths has been obtained
> -   from the upper bound of an array at the end of a struct.  Such
> -   an array may hold a string that's longer than its upper bound
> -   due to it being used as a poor-man's flexible array member.
> -
> -   STRICT is true if it will handle PHIs and COND_EXPRs conservatively
> -   and false if PHIs and COND_EXPRs are to be handled optimistically,
> -   if we can determine string length minimum and maximum; it will use
> -   the minimum from the ones where it can be determined.
> -   STRICT false should be only used for warning code.
> -   When non-null, clear *NONSTR if ARG refers to a constant array
> -   that is known not be nul-terminated.  Otherwise set it to
> -   the declaration of the constant non-terminated array.
> -
> -   ELTSIZE is 1 for normal single byte character strings, and 2 or
> -   4 for wide characer strings.  ELTSIZE is by default 1.  */
> +/* Try to obtain the range of the lengths of the string(s) referenced
> +   by ARG, or the size of the largest array ARG refers to if the range
> +   of lengths cannot be determined, and store all in *PDATA.  ELTSIZE
> +   is the expected size of the string element in bytes: 1 for char and
> +   some power of 2 for wide characters.
> +   Return true if the range [PDATA->MINLEN, PDATA->MAXLEN] is suitable
> +   for optimization.  Returning false means that a nonzero PDATA->MINLEN
> +   doesn't reflect the true lower bound of the range  when PDATA->MAXLEN
                                                       ^^
There are two spaces instead of one.  No need to repost just because of
this, of course.						

Marek
Jeff Law June 7, 2019, 7:11 p.m. UTC | #2
On 6/6/19 1:32 PM, Martin Sebor wrote:
> Hi Jeff,
> 
> It looks like the updated comment for get_range_strlen didn't make
> it into the strlen fixup commits last December and the function
> still has the old description.  (Not surprising given there are
> at least two overloads of the same function and things moving
> between them.)  I'm going to check in the comment from the patch
> here: https://gcc.gnu.org/ml/gcc-patches/2018-11/msg02050.html
> with an additional sentence describing ELTSIZE.
> 
> Let me know if you'd like me to tweak it or if spot something
> else.
> 
> Thanks
> Martin
> 
> gcc-gimple-fold-get_range_strlen-comment.diff
> 
> gcc/ChangeLog:
> 
> 	* gimple-fold.c (get_range_strlen): Update comment that didn't
> 	make it into r267503 or related commits.
OK.  Sorry about that.  Not sure how I missed it.  It's all a bit of a
blur at this point.

jeff
diff mbox series

Patch

gcc/ChangeLog:

	* gimple-fold.c (get_range_strlen): Update comment that didn't
	make it into r267503 or related commits.
	
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index b3e931744f8..18860bb7c28 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -1672,30 +1672,16 @@  get_range_strlen (tree arg, bitmap *visited,
     }
 }
 
-/* Determine the minimum and maximum value or string length that ARG
-   refers to and store each in the first two elements of MINMAXLEN.
-   For expressions that point to strings of unknown lengths that are
-   character arrays, use the upper bound of the array as the maximum
-   length.  For example, given an expression like 'x ? array : "xyz"'
-   and array declared as 'char array[8]', MINMAXLEN[0] will be set
-   to 0 and MINMAXLEN[1] to 7, the longest string that could be
-   stored in array.
-   Return true if the range of the string lengths has been obtained
-   from the upper bound of an array at the end of a struct.  Such
-   an array may hold a string that's longer than its upper bound
-   due to it being used as a poor-man's flexible array member.
-
-   STRICT is true if it will handle PHIs and COND_EXPRs conservatively
-   and false if PHIs and COND_EXPRs are to be handled optimistically,
-   if we can determine string length minimum and maximum; it will use
-   the minimum from the ones where it can be determined.
-   STRICT false should be only used for warning code.
-   When non-null, clear *NONSTR if ARG refers to a constant array
-   that is known not be nul-terminated.  Otherwise set it to
-   the declaration of the constant non-terminated array.
-
-   ELTSIZE is 1 for normal single byte character strings, and 2 or
-   4 for wide characer strings.  ELTSIZE is by default 1.  */
+/* Try to obtain the range of the lengths of the string(s) referenced
+   by ARG, or the size of the largest array ARG refers to if the range
+   of lengths cannot be determined, and store all in *PDATA.  ELTSIZE
+   is the expected size of the string element in bytes: 1 for char and
+   some power of 2 for wide characters.
+   Return true if the range [PDATA->MINLEN, PDATA->MAXLEN] is suitable
+   for optimization.  Returning false means that a nonzero PDATA->MINLEN
+   doesn't reflect the true lower bound of the range  when PDATA->MAXLEN
+   is -1 (in that case, the actual range is indeterminate, i.e.,
+   [0, PTRDIFF_MAX - 2].  */
 
 bool
 get_range_strlen (tree arg, c_strlen_data *pdata, unsigned eltsize)