https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81622
--- Comment #7 from Bill Schmidt <wschmidt at gcc dot gnu.org> --- This code was reviewed and approved by Richard back when it was first written. It's been some time since this was written, so I don't recall the origin of the array type, but it was definitely necessary. There are probably some test cases from the original patch submission that show this. I would have to go digging to find that. As stated in the submission note, the real long-term fix for this is to have these built-in functions handled during gimple built-in folding instead. I wasn't aware of that as a target-hook option at the time this code went in. Gimple built-in folding would be much simpler since the grotty work of parsing and error handling is behind us. This is on the list to be done, but hasn't been completed yet.