-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Toolset update: VS 2022 17.3 Preview 1 #2714
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
Toolset update: VS 2022 17.3 Preview 1 #2714
Conversation
Should be paired with MSVC-internal changes to: src/vctools/crt/crt_build.settings.targets
We probably need to modify src/vctools/crt/crt-common.settings.targets to set Win32WinNt and NtddiVersion.
strega-nil-ms
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This LGTM, but I don't feel comfortable enough with the codebase yet to be a final reviewer.
|
Mirrored to internal MSVC-PR-398667 with passing tests. (I can easily push changes to both for code review feedback.) |
CaseyCarter
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verified there are no remaining mentions of /Za and winsdk, and no files with winsdk in their names.
stl/CMakeLists.txt, we don't need to includecrt/src/concrtanymore.<concrtinternal.h>etc.src/vctools/crt/crt_build.settings.targets.<Windows.h>from headers) allows us to remove a couple of long-standing workarounds.filesystem.cpp, we can directly useFILE_DISPOSITION_INFO_EXnow.static_assertthat thesestructs are layout-compatible, and that the constants have identical values.CMakeLists.txt, we need to increaseNTDDI_VERSIONin order to get the declaration ofFileDispositionInfoEx. Instead of increasing it to the exact value we need, I am going further and increasing it to the maximum supported value right now,NTDDI_WIN10_CO, so that we can access other declarations if necessary (see the comment above)._WIN32_WINNT(due to an apparent mistake in the WinSDK headers, theFILE_DISPOSITION_FLAG_DELETEetc. macros are effectively unguarded), but I am increasing it to its maximum value of Win10 for consistency.src/vctools/crt/crt-common.settings.targets, settingWin32WinNtandNtddiVersion./Zatest coverage. (No product changes.)/Zaconfigurations from the remaining matrices (we never combined them with unique options so they can simply be dropped) and removes some test workarounds./Za)./Zahas always been problematically buggy, but it also used to be the only way to request extra conformance from MSVC. Now,/permissive-and/Zc:preprocessorhave morally superseded/Za, and/Zais officially discouraged in the documentation. We also have excellent conformance coverage from Clang in its strict mode and EDG, so it has been aeons since/Zafound anything in the STL that needed to be changed. Removing this test coverage doesn't block users from using/Zawith the STL, and we'll continue to fix any reported conformance issues in the library, but we won't spend effort on working around/Zabugs in the product and test code._declspecin the ancientDev09_056375_locale_cleanup/testdll.cpp./Za, the compiler emitted errors in the WinSDK headers followed by complaining about this single-underscore extension; we should fix it even though we're dropping/Zacoverage).