https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116016
Bill Wendling <isanbard at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |isanbard at gmail dot com --- Comment #10 from Bill Wendling <isanbard at gmail dot com> --- (In reply to Jakub Jelinek from comment #2) > So, what would be the prototype of the builtin? > Would it be type-generic for both arguments, i.e. effectively > void __builtin_set_counted_by (...); > which would just verify that 2 arguments are passed, the first one is some > flexible array member with counted_by argument and the second argument has > some type implicitly convertible to the type of the counted_by member? The Clang implementation will probably have a prototype of something like: void __builtin_set_counted_by(void *, size_t) The 'void *' could be questionable, but I'm not sure how else to specify it (of course the compiler will do its magic internally to verify that it's a pointer to a FAM and has the 'counted_by' attribute, etc.). If we use 'void *', is it considered an error for the first parameter to NOT be a FAM? Or does the builtin silently become a no-op?