https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114979
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- >From the ABI: For calls that may call functions that use varargs or stdargs (prototype-less calls or calls to functions containing ellipsis (...) in the declaration) %al (16) is used as hidden argument to specify the number of vector registers used. 16) Note that the rest of %rax is undefined, only the contents of %al is defined. In this case you have a prototype-less call still. clang seems to recognize it as one having a prototype here because of the final definition but I am not 100% sure if that is correct.