Don't use 128 bit integers with clang-cl #1800
Merged
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.
clang-cl currently has a long-standing bug that using 128 bit integers generates references to symbols that are provided neither by its own nor by the Microsoft runtime: https://bugs.llvm.org/show_bug.cgi?id=25305
Visual Studio (2017, I was unable to test 2019) also does not satisfy the conditions to use 128 bit integers in {fmt}, so this effectively causes Clang to match its behavior when targetting the Microsoft ABI. The condition could therefore be simplified to just checking FMT_MSC_VER, but also checking for Clang expresses the intent better as it does advertise its support for 128 bit integers while Visual Studio does not (at the very least not in the way tested here).
This fixes the linker error described in #1798.
I agree that my contributions are licensed under the {fmt} license, and agree to future changes to the licensing.