Skip to content

Commit dc77cf3

Browse files
authored
Merge pull request #3483 from MicrosoftDocs/master
4/5 AM Publishing
2 parents be9a1af + ffc1304 commit dc77cf3

File tree

4 files changed

+36
-18
lines changed

4 files changed

+36
-18
lines changed

docs/build/arm-exception-handling.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -188,29 +188,32 @@ When the packed unwind format is insufficient to describe the unwinding of a fun
188188
The `.xdata` record is designed so that it is possible to fetch the first 8 bytes and compute the full size of the record, not including the length of the variable-sized exception data that follows. This code snippet computes the record size:
189189

190190
```cpp
191-
ULONG Comput`.xdata`Size(PULONG `.xdata`)
191+
ULONG ComputeXdataSize(PULONG Xdata)
192192
{
193-
ULONG EpilogueScopes;
194193
ULONG Size;
194+
ULONG EpilogueScopes;
195195
ULONG UnwindWords;
196196

197-
if (`.xdata`[0] >> 23) != 0) {
197+
if ((Xdata[0] >> 23) != 0) {
198198
Size = 4;
199-
EpilogueScopes = `.xdata`[0] >> 23) & 0x1f;
200-
UnwindWords = `.xdata`[0] >> 28) & 0x0f;
199+
EpilogueScopes = (Xdata[0] >> 23) & 0x1f;
200+
UnwindWords = (Xdata[0] >> 28) & 0x0f;
201201
} else {
202202
Size = 8;
203-
EpilogueScopes =`.xdata`[1] & 0xffff;
204-
UnwindWords = `.xdata`[1] >> 16) & 0xff;
203+
EpilogueScopes = Xdata[1] & 0xffff;
204+
UnwindWords = (Xdata[1] >> 16) & 0xff;
205205
}
206206

207-
if (!`.xdata`[0] & (1 << 21))) {
207+
if (!(Xdata[0] & (1 << 21))) {
208208
Size += 4 * EpilogueScopes;
209209
}
210+
210211
Size += 4 * UnwindWords;
211-
if `.xdata`[0] & (1 << 20)) {
212-
Size += 4;
212+
213+
if (Xdata[0] & (1 << 20)) {
214+
Size += 4; // Exception handler RVA
213215
}
216+
214217
return Size;
215218
}
216219
```

docs/build/arm64-exception-handling.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -237,27 +237,32 @@ This data is broken into four sections:
237237
The .xdata record is designed so it's possible to fetch the first 8 bytes, and use them to compute the full size of the record, minus the length of the variable-sized exception data that follows. The following code snippet computes the record size:
238238
239239
```cpp
240-
ULONG ComputeXdataSize(PULONG *Xdata)
240+
ULONG ComputeXdataSize(PULONG Xdata)
241241
{
242-
ULONG EpilogScopes;
243242
ULONG Size;
243+
ULONG EpilogScopes;
244244
ULONG UnwindWords;
245245
246-
if ((Xdata[0] >> 27) != 0) {
246+
if ((Xdata[0] >> 22) != 0) {
247247
Size = 4;
248248
EpilogScopes = (Xdata[0] >> 22) & 0x1f;
249-
UnwindWords = (Xdata[0] >> 27) & 0x0f;
249+
UnwindWords = (Xdata[0] >> 27) & 0x1f;
250250
} else {
251251
Size = 8;
252252
EpilogScopes = Xdata[1] & 0xffff;
253253
UnwindWords = (Xdata[1] >> 16) & 0xff;
254254
}
255255
256-
Size += 4 * EpilogScopes;
256+
if (!(Xdata[0] & (1 << 21))) {
257+
Size += 4 * EpilogScopes;
258+
}
259+
257260
Size += 4 * UnwindWords;
261+
258262
if (Xdata[0] & (1 << 20)) {
259-
Size += 4; // exception handler RVA
263+
Size += 4; // Exception handler RVA
260264
}
265+
261266
return Size;
262267
}
263268
```

docs/build/reference/clr-common-language-runtime-compilation.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,13 @@ One or more of the following comma-separated arguments.
2323

2424
With no options, **`/clr`** creates metadata for the component. The metadata can be consumed by other CLR applications, and enables the component to consume types and data in the metadata of other CLR components. For more information, see [Mixed (Native and Managed) Assemblies](../../dotnet/mixed-native-and-managed-assemblies.md).
2525

26-
- **`NetCore`**
26+
::: moniker range="msvc-160"
2727

28-
**`/clr:NetCore`** creates metadata and code for the component using the latest cross-platform .NET framework, also known as .NET Core. The metadata can be consumed by other .NET Core applications. And, the option enables the component to consume types and data in the metadata of other .NET Core components.
28+
- **`netcore`**
29+
30+
Available starting in Visual Studio 2019 version 16.4, **`/clr:netcore`** creates metadata and code for the component using the latest cross-platform .NET framework, also known as .NET Core. The metadata can be consumed by other .NET Core applications. And, the option enables the component to consume types and data in the metadata of other .NET Core components.
31+
32+
::: moniker-end
2933

3034
- **`nostdlib`**
3135

docs/sanitizers/asan-known-issues.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ The AddressSanitizer runtime doesn't release memory back to the OS during execut
6161

6262
The *`clang_rt.asan*.dll`* runtime files are installed next to the compilers in *`%VSINSTALLDIR%\VC\Tools\MSVC\<version>\bin\<host-arch>\<target-arch>\`*. These locations are on the path in debugging sessions, and in Visual Studio developer command prompts. These files are never placed in *`C:\Windows\System32`* or *`C:\Windows\SysWOW64`*.
6363

64+
## Custom property sheet support
65+
66+
The Property Manager window in the Visual Studio IDE allows you to add custom *`.props`* files to your projects. Even though the **Enable Address Sanitizer** property (`<EnableASAN>`) is shown, it's not honored by the build. That's because the custom *`.props`* files get included after *`Microsoft.cpp.props`*, which uses the `<EnableASAN>` value to set other properties.
67+
68+
As a workaround, you can create a *`Directory.Build.props`* file in the root of your project to define the `<EnableASAN>` property. For more information, see [Customize C++ builds](/visualstudio/msbuild/customize-your-build#customize-c-builds).
69+
6470
## See also
6571

6672
[AddressSanitizer overview](./asan.md)\

0 commit comments

Comments
 (0)