Skip to content

Commit b99ab4c

Browse files
authored
Merge pull request MicrosoftDocs#3987 from MicrosoftDocs/main637909115263722158
Repo sync for protected CLA branch
2 parents 24943b8 + 07dc557 commit b99ab4c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+715
-490
lines changed

.openpublishing.redirection.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -860,6 +860,21 @@
860860
"redirect_url": "/cpp/build/reference/running-nmake",
861861
"redirect_document_id": false
862862
},
863+
{
864+
"source_path": "docs/build/manifest-generation-in-visual-studio.md",
865+
"redirect_url": "/cpp/build/understanding-manifest-generation-for-c-cpp-programs#manifest-generation-in-visual-studio",
866+
"redirect_document_id": false
867+
},
868+
{
869+
"source_path": "docs/build/manifest-generation-at-the-command-line.md",
870+
"redirect_url": "/cpp/build/understanding-manifest-generation-for-c-cpp-programs#manifest-generation-at-the-command-line",
871+
"redirect_document_id": false
872+
},
873+
{
874+
"source_path": "docs/build/how-to-embed-a-manifest-inside-a-c-cpp-application.md",
875+
"redirect_url": "/cpp/build/understanding-manifest-generation-for-c-cpp-programs#how-to-embed-a-manifest-inside-a-c-cpp-application",
876+
"redirect_document_id": false
877+
},
863878
{
864879
"source_path": "docs/build/unwind-data-for-exception-handling-debugger-support.md",
865880
"redirect_url": "/cpp/build/exception-handling-x64",

docs/build/arm64ec-windows-abi-conventions.md

Lines changed: 192 additions & 0 deletions
Large diffs are not rendered by default.

docs/build/common-visual-cpp-arm-migration-issues.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ And if there's a dependency between `operator->(memory_handle)` and `operator*(p
8989

9090
The MSVC compiler supports two different interpretations of the **`volatile`** storage qualifier that you can specify by using compiler switches. The [/volatile:ms](reference/volatile-volatile-keyword-interpretation.md) switch selects the Microsoft extended volatile semantics that guarantee strong ordering, as has been the traditional case for x86 and x64 because of the strong memory model on those architectures. The [/volatile:iso](reference/volatile-volatile-keyword-interpretation.md) switch selects the strict C++ standard volatile semantics that don't guarantee strong ordering.
9191

92-
On the ARM architecture, the default is **/volatile:iso** because ARM processors have a weakly ordered memory model, and because ARM software doesn't have a legacy of relying on the extended semantics of **/volatile:ms** and doesn't usually have to interface with software that does. However, it's still sometimes convenient or even required to compile an ARM program to use the extended semantics. For example, it may be too costly to port a program to use the ISO C++ semantics, or driver software might have to adhere to the traditional semantics to function correctly. In these cases, you can use the **/volatile:ms** switch; however, to recreate the traditional volatile semantics on ARM targets, the compiler must insert memory barriers around each read or write of a **`volatile`** variable to enforce strong ordering, which can have a negative impact on performance.
92+
On the ARM architecture (except ARM64EC), the default is **/volatile:iso** because ARM processors have a weakly ordered memory model, and because ARM software doesn't have a legacy of relying on the extended semantics of **/volatile:ms** and doesn't usually have to interface with software that does. However, it's still sometimes convenient or even required to compile an ARM program to use the extended semantics. For example, it may be too costly to port a program to use the ISO C++ semantics, or driver software might have to adhere to the traditional semantics to function correctly. In these cases, you can use the **/volatile:ms** switch; however, to recreate the traditional volatile semantics on ARM targets, the compiler must insert memory barriers around each read or write of a **`volatile`** variable to enforce strong ordering, which can have a negative impact on performance.
9393

94-
On the x86 and x64 architectures, the default is **/volatile:ms** because much of the software that has already been created for these architectures by using MSVC relies on them. When you compile x86 and x64 programs, you can specify the **/volatile:iso** switch to help avoid unnecessary reliance on the traditional volatile semantics, and to promote portability.
94+
On the x86, x64 and ARM64EC architectures, the default is **/volatile:ms** because much of the software that has already been created for these architectures by using MSVC relies on them. When you compile x86, x64 and ARM64EC programs, you can specify the **/volatile:iso** switch to help avoid unnecessary reliance on the traditional volatile semantics, and to promote portability.
9595

9696
## See also
9797

docs/build/how-to-embed-a-manifest-inside-a-c-cpp-application.md

Lines changed: 0 additions & 254 deletions
This file was deleted.

docs/build/manifest-generation-at-the-command-line.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

docs/build/manifest-generation-in-visual-studio.md

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)