diff mbox series

declare get_range_query attribute returns_nonnull

Message ID b8e3f4bf-1bf3-4f99-4383-d8af93869ed4@gmail.com
State New
Headers show
Series declare get_range_query attribute returns_nonnull | expand

Commit Message

Martin Sebor Aug. 25, 2021, 11:01 p.m. UTC
Andrew, based on your remarks in our discussion Re: enable ranger
and caching in pass_waccess, I've added some comments to struct
function and get_range_query() and declared the latter with
attribute returns_nonnull to make it explicit both to readers
and to GCC that the x_range_query member is never null.

Tested on x86_64-linux.

Martin

Comments

Jeff Law Aug. 25, 2021, 11:03 p.m. UTC | #1
On 8/25/2021 5:01 PM, Martin Sebor via Gcc-patches wrote:
> Andrew, based on your remarks in our discussion Re: enable ranger
> and caching in pass_waccess, I've added some comments to struct
> function and get_range_query() and declared the latter with
> attribute returns_nonnull to make it explicit both to readers
> and to GCC that the x_range_query member is never null.
>
> Tested on x86_64-linux.
>
> Martin
>
> gcc-get_range_query.diff
>
> gcc/ChangeLog:
> 	* function.h (function): Add comments.
> 	(get_range_query): Same.  Add attribute returns nonnull.
OK
jeff
diff mbox series

Patch

gcc/ChangeLog:
	* function.h (function): Add comments.
	(get_range_query): Same.  Add attribute returns nonnull.

diff --git a/gcc/function.h b/gcc/function.h
index 0db51775e7c..36003e7576a 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -312,7 +312,8 @@  struct GTY(()) function {
 
   /* Range query mechanism for functions.  The default is to pick up
      global ranges.  If a pass wants on-demand ranges OTOH, it must
-     call enable/disable_ranger().  */
+     call enable/disable_ranger().  The pointer is never null.  It
+     should be queried by calling get_range_query().  */
   range_query * GTY ((skip)) x_range_query;
 
   /* Last statement uid.  */
@@ -719,10 +720,10 @@  extern const char *current_function_name (void);
 extern void used_types_insert (tree);
 
 /* Returns the currently active range access class.  When there is no active
-   range class, global ranges are used.  */
+   range class, global ranges are used.  Never returns null.  */
 
-inline range_query *
-get_range_query (struct function *fun)
+ATTRIBUTE_RETURNS_NONNULL inline range_query *
+get_range_query (const struct function *fun)
 {
   return fun->x_range_query;
 }