https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77531
Bug ID: 77531
Summary: __attribute__((alloc_size(1,2))) could also warn on
multiplication overflow
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: crrodriguez at opensuse dot org
Target Milestone: ---
Using the example in the docs:
void* my_calloc(size_t x , size_t y) __attribute__((alloc_size(1,2)))
since alloc_size(1,2) means the function will return memory of x *y..when the
compiler knows that multiplying x * y will cause an integer overflow..let's say
a obvious case my_calloc(SIZE_MAX, SIZE_MAX); it could either warn, error or
trap before an integer overflow actually happens.. (using the same logic as
__builtin_mul_overflow() I guess)