-
Notifications
You must be signed in to change notification settings - Fork 61
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
WIP: bisect MSVC error #1151
Closed
Closed
WIP: bisect MSVC error #1151
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
MSVC doesn't properly report __cplusplus by default to keep compatibility with broken legacy code: - https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
- split compiler builtins and code that can be considered as architeture intrinsics - group compiler-specific code
illwieckz
force-pushed
the
illwieckz/bisect-msvc
branch
from
May 16, 2024 15:06
a16a050
to
0d21b7d
Compare
illwieckz
force-pushed
the
illwieckz/bisect-msvc
branch
2 times, most recently
from
May 16, 2024 15:21
23bd10b
to
37cae1d
Compare
This introduces the USE_ARCH_INTRINSICS CMake option. It is enabled by default. Disabling it is meant to disable custom asm code and usage of intrinsincs functions for the target platform in the Dæmon code base, it may also be used by games built with the Dæmon common code base. It is not meant to disable asm or intrinsincs usage in third-party libraries. It is not meant to prevent the compiler to use such intrinsics in its optimization passes. It is not meant to disable the compiler flags we set to tell the compiler to try to use such intrinsics in its optimization passes. For this, one should disable USE_CPU_RECOMMENDED_FEATURES instead. For obvious reason the asm code in the BREAKPOINT() implementation is not meant to be disabled by USE_ARCH_INTRINSICS. The macro syntax is: DAEMON_ARCH_INTRINSICS_(architecture)[_extension] Examples: - DAEMON_ARCH_INTRINSICS_i686: i686 specific code, including asm code. - DAEMON_ARCH_INTRINSICS_i686_sse: i686 SSE specific code. - DAEMON_ARCH_INTRINSICS_i686_sse2: i686 SSE2 specific code. If a platform inherits feature from an parent platform, the parent platform name is used. For example on amd64, the definition enabling SSE code is DAEMON_ARCH_INTRINSICS_i686_sse, enabling SSE code on both i686 with SSE and amd64 platforms. and both DAEMON_ARCH_INTRINSICS_amd64 and DAEMON_ARCH_INTRINSICS_i686 are available.
This introduces USE_COMPILER_BUILTINS CMake option. It is enabled by default. Disabling it is meant to test the unknown compiler code.
illwieckz
force-pushed
the
illwieckz/bisect-msvc
branch
from
May 16, 2024 15:54
3656989
to
1d1257d
Compare
illwieckz
force-pushed
the
illwieckz/bisect-msvc
branch
from
May 16, 2024 17:44
32a4c24
to
6058a90
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
I'm just using this PR to trigger appveyor build and bisect an MSVC compilation error.