-
Notifications
You must be signed in to change notification settings - Fork 66
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
Update LLVM to 15.0.4 #3847
Comments
The relevant Windows changes are:
|
Please consider updating LLVM in the VS2022 image:
|
Makes sense to go straight to LLVM 16.0 now:
template <typename> struct __declspec(dllexport) S {
void f();
};
template<> void S<int>::f() {} // clang-cl will now dllexport this. This matches what MSVC does, so it improves compatibility, but it can also cause errors for code which clang-cl would previously accept, for example: template <typename> struct __declspec(dllexport) S {
void f();
};
template<> void S<int>::f() = delete; // Error: cannot delete dllexport function.
template <typename> struct __declspec(dllimport) S {
void f();
};
template<> void S<int>::f() {}; // Error: cannot define dllimport function. These errors also match MSVC’s behavior.
void func(void *p) {
*p; // Now diagnosed as a warning-as-error.
} Clang now diagnoses use of a bit-field as an instruction operand in Microsoft style inline asm blocks as an error. Previously, a bit-field operand yielded the address of the allocation unit the bit-field was stored within; reads or writes therefore had the potential to read or write nearby bit-fields. (#57791) typedef struct S {
unsigned bf:1;
} S;
void f(S s) {
__asm {
mov eax, s.bf // Now diagnosed as an error.
mov s.bf, eax // Now diagnosed as an error.
}
} See: |
Looks upgraded on VS2019 image:
|
LLVM 18.1.1 seems to be on latest VS2019/2022 images. |
https://github.com/llvm/llvm-project/releases/latest
The text was updated successfully, but these errors were encountered: