On Tue, Jan 11, 2022 at 02:27:50PM +0530, Siddhesh Poyarekar wrote: > Allow returning dynamic expressions from ADDR_EXPR for > __builtin_dynamic_object_size and also allow offsets to be dynamic. > > gcc/ChangeLog: > > * tree-object-size.c (size_valid_p): New function. > (size_for_offset): Remove OFFSET constness assertion. > (addr_object_size): Build dynamic expressions for object > sizes and use size_valid_p to decide if it is valid for the > given OBJECT_SIZE_TYPE. > (compute_builtin_object_size): Allow dynamic offsets when > computing size at O0. > (call_object_size): Call size_valid_p. > (plus_stmt_object_size): Allow non-constant offset and use > size_valid_p to decide if it is valid for the given > OBJECT_SIZE_TYPE. > > gcc/testsuite/ChangeLog: > > * gcc.dg/builtin-dynamic-object-size-0.c: Add new tests. > * gcc.dg/builtin-object-size-1.c (test1) > [__builtin_object_size]: Adjust expected output for dynamic > object sizes. > * gcc.dg/builtin-object-size-2.c (test1) > [__builtin_object_size]: Likewise. > * gcc.dg/builtin-object-size-3.c (test1) > [__builtin_object_size]: Likewise. > * gcc.dg/builtin-object-size-4.c (test1) > [__builtin_object_size]: Likewise.
> +/* Return true if VAL is represents a valid size for OBJECT_SIZE_TYPE. */ s/is / as in the other patch. Otherwise LGTM. Jakub