Happy new year, and ping!
On 12/18/21 18:05, Siddhesh Poyarekar wrote:
This patchset enhances the __builtin_dynamic_object_size builtin to
produce dynamic expressions for object sizes to improve coverage of
_FORTIFY_SOURCE.
Testing:
--------
This series has been tested with build and test for i686, bootstrap with
ubsan and full bootstrap and test with x86_64. I also tested the
toolchain with a glibc build and testsuite run for x86_64 and i686 with
_FORTIFY_SOURCE=3 enabled for gcc12.
Additional testing plans (i.e. I've already started to do some of this):
- Build packages to compare values returned by __builtin_object_size
with the older pass and this new one. Also compare with
__builtin_dynamic_object_size.
- Expand the list of packages to get more coverage metrics.
- Explore performance impact on applications on building with
_FORTIFY_SOURCE=3.
Siddhesh Poyarekar (4):
tree-object-size: Support dynamic sizes in conditions
tree-object-size: Handle function parameters
tree-object-size: Handle GIMPLE_CALL
tree-object-size: Dynamic sizes for ADDR_EXPR
gcc/builtins.c | 6 +-
.../gcc.dg/builtin-dynamic-object-size-0.c | 495 +++++++++++++
.../gcc.dg/builtin-dynamic-object-size-10.c | 2 +
.../builtin-dynamic-object-size-5-main.c | 32 +
.../gcc.dg/builtin-dynamic-object-size-5.c | 7 +-
gcc/testsuite/gcc.dg/builtin-object-size-1.c | 154 +++-
gcc/testsuite/gcc.dg/builtin-object-size-2.c | 133 ++++
gcc/testsuite/gcc.dg/builtin-object-size-3.c | 151 ++++
gcc/testsuite/gcc.dg/builtin-object-size-4.c | 93 +++
gcc/testsuite/gcc.dg/builtin-object-size-5.c | 22 +-
gcc/tree-object-size.c | 670 +++++++++++++++---
11 files changed, 1677 insertions(+), 88 deletions(-)
create mode 100644 gcc/testsuite/gcc.dg/builtin-dynamic-object-size-0.c
create mode 100644 gcc/testsuite/gcc.dg/builtin-dynamic-object-size-5-main.c