Fix Clang builds regarding undefined function call #17521
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.
While MSVC is apparently fine using
_AddressOfReturnAddress()without including intrin.h, Clang complains that the function is undefined. So we include the header, if_MSC_VERis defined, what is the case for MSVC and clang-cl, but not for some other compilers on Windows (e.g. GCC).Note that this is related to 36857ab. It is indeed correct, that
-fmodulesdeclares some intrinsics (without-fmodules, hash_sha_ni.c and possibly others fail to build, even when I'm including intrin.h there). However, there are apparently no longer conflicting declarations in Clang (tested with 18.1.8), and without the include, I'm getting:PS: note that Clang does not (yet) support
__builtin_frame_address().