[Bug c/108896] provide "element_count" attribute to give more context to __builtin_dynamic_object_size() and -fsanitize=bounds
muecker at gwdg dot de
gcc-bugzilla@gcc.gnu.org
Thu Mar 2 15:50:36 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108896
--- Comment #7 from Martin Uecker <muecker at gwdg dot de> ---
An attribute is certainly simpler and should be easy to add.
I proposed similar extension for C23 and there was some interest,
but I did not have time to follow up.
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2660.pdf
Sizeof is not a constant expression in ISO C for a VLA and it is not a constant
expression if the struct contains a VLA (GNU extension). So this is already
the case and nothing would need to change. It would also potentially avoid
mistakes when computing the size of such a struct. But the rules for
initialization are not so clear.
I do not think it is a good idea to differentiate between file scope structs
and others. This would be confusing.
Considering that the GNU extensions is rarely used, one could consider
redefining the meaning of
int n = 1;
struct {
int n;
char buf[n];
};
so that the 'n' refers to the member. Or we add a new syntax similar to
designators (which intuitively makes sense to me).
More information about the Gcc-bugs
mailing list