[MSVC] Replace #warning with compatible directives for MSVC #206
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR addresses an issue where the
#warning
directive incpuid_main.c
is not supported by MSVC, causing a fatal error (C1021: invalid preprocessor command 'warning'
). The warning is used to notify users when libcpuid is built on unsupported CPU architectures, such as ARM.Changes Made
#warning
with a compiler-specific directive._MSC_VER
), used#pragma message
to generate a similar warning message.#warning
for compatibility.__arm__
or__aarch64__
).Rationale
This change ensures that libcpuid can be built successfully on MSVC while still providing meaningful warnings for unsupported CPU architectures. It improves cross-platform compatibility without changing the behavior for compilers that support
#warning
.Test Plan
Example of New Warning
On MSVC:
Related PR: microsoft/vcpkg#42117