New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
llvm.va_* intrinsics vary in type #1465
Comments
Example of before: define void %testVaCopyArg(i8* %fmt, ...) { after: define void %testVaCopyArg(i8* %fmt, ...) { the difference is that the intrinsics all take i8* as the valist pointer. Reid, please make llvm-upgrade handle this. Thanks! -Chris |
The CFE and LangRef have been updated, the only piece left is llvm-upgrade. |
What exactly is the transform you want on llvm-upgrade? I'm seeing it as: for any intrinsic starting with llvm.va_, bitcast any pointer argument to i8* Is that correct? |
yep, sounds right! |
Extended Description
The CFE currently produces llvm.va_* intrinsics where the va_list type varies according to the target. The
LangRef document describes this behavior. Both should be updated to change the pointer to always be
'i8*' so that there is always a consistent type.
-Chris
The text was updated successfully, but these errors were encountered: