Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Compiler Condition to use inline assembly optimizations with ARM6…
…4 for Compatibility with MSVC (#17671) #17665 **Problem** `google\protobuf\parse_context.h(721,10): error C2059: syntax error: ':'` `google\protobuf\parse_context.h(898,14): error C3861: 'Ubfx7': identifier not found` The latest protobuf versions fail to compile with MSVC on Windows ARM64 architecture. > Inline assembly is only available for x86 targets. For similar functionality in x64 or ARM64 code, use [compiler intrinsics](https://learn.microsoft.com/en-us/cpp/intrinsics/compiler-intrinsics?view=msvc-170). https://learn.microsoft.com/en-us/cpp/assembler/inline/writing-functions-with-inline-assembly?view=msvc-170 **Solution** As inline assembly for win ARM64 with MSVC as a compiler is not supported (even ARM specific assembly functions), a term has been added to the conditions in parse_context.h to prevent the assembly optimizations for arm64 from executing if the compiler is MSVC. Tested by compiling protobuf with MSVC on Windows ARM64 and AMD64 architecture. Compilation was a success. Closes #17671 COPYBARA_INTEGRATE_REVIEW=#17671 from dsmith111:smithdavi/msvc-compatibility-patch 765f8c8 PiperOrigin-RevId: 663262760
- Loading branch information