On Mon, Jan 22, 2018 at 04:55:42PM +0100, David Brown wrote: > Many of these are going to be used automatically by the compiler. You > write "strdup" in your code, and the compiler treats it as > "__builtin_strdup". I don't know that such functions need to be > documented as extensions, but they are certainly in use. > > You will also find that a large number of the builtins are for specific > target processors, and projects using them are not going to turn up on > GitHub. They will be used in embedded software that is not open source.
Not just that. If the statistics e.g. ignored GCC headers, then obviously it will miss most of the target builtins, because the normal and only supported way for the target builtins is to use them through the intrinsic inline functions or macros provided by those headers. So, take those out (usually a vendor ABI is something that says what intrinsics are provided, so even if you made statistics on what intrinsic is used in the 5000 most popular projects, we still couldn't remove them) and taking out the above category, where the builtins are just an alternative for a standard function and depending on prototype and chosen standard some functions are treated like builtins, pretty much nothing remains in your survey. Jakub