Skip to content

Commit f43fc29

Browse files
authored
Merge pull request #5090 from MicrosoftDocs/main
11/1/2023 AM Publish
2 parents 0519d8b + c3f28b2 commit f43fc29

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Special helper routines like `__chkstk_arm64ec` use custom calling conventions a
5050
| `x15` | `mm7` (low 64 bits of x87 `R7` register) | volatile | volatile | volatile |
5151
| `x16` | High 16 bits of each of the x87 `R0`-`R3` registers | volatile(`xip0`) | volatile(`xip0`) | volatile |
5252
| `x17` | High 16 bits of each of the x87 `R4`-`R7` registers | volatile(`xip1`) | volatile(`xip1`) | volatile |
53-
| `x18` | N/A | fixed(TEB) | fixed(TEB) | volatile |
53+
| `x18` | GS.base | fixed(TEB) | fixed(TEB) | fixed(TEB) |
5454
| `x19` | `r12` | non-volatile | non-volatile | non-volatile |
5555
| `x20` | `r13` | non-volatile | non-volatile | non-volatile |
5656
| `x21` | `r14` | non-volatile | non-volatile | non-volatile |
@@ -62,7 +62,7 @@ Special helper routines like `__chkstk_arm64ec` use custom calling conventions a
6262
| `x27` | `rbx` | non-volatile | non-volatile | non-volatile |
6363
| `x28` | N/A | disallowed | disallowed | N/A |
6464
| `fp` | `rbp` | non-volatile | non-volatile | non-volatile |
65-
| `lr` | `mm0` (low 64 bits of x87 `R0` register) | volatile | volatile | N/A |
65+
| `lr` | `mm0` (low 64 bits of x87 `R0` register) | both | both | both |
6666
| `sp` | `rsp` | non-volatile | non-volatile | non-volatile |
6767
| `pc` | `rip` | instruction pointer | instruction pointer | instruction pointer |
6868
| `PSTATE` subset: `N`/`Z`/`C`/`V`/`SS` <sup>1, 2</sup> | `RFLAGS` subset: `SF`/`ZF`/`CF`/`OF`/`TF` | volatile | volatile | volatile |

docs/build/reference/debug-generate-debug-info.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ The **`/DEBUG`** option puts the debugging information from linked object and li
2020

2121
An executable (an EXE or DLL file) created for debugging contains the name and path of the corresponding PDB. The debugger reads the embedded name and uses the PDB when you debug the program. The linker uses the base name of the program and the extension *`.pdb`* to name the program database, and embeds the path where it was created. To override this default, set the [`/PDB`](pdb-use-program-database.md) option and specify a different file name.
2222

23-
The **`/DEBUG:FASTLINK`** option is available in Visual Studio 2017 and later. This option generates a limited PDB that indexes into the debug information in the object files and libraries used to build the executable instead of making a full copy. You can only use this limited PDB to debug from the computer where the binary and its libraries were built. If you deploy the binary elsewhere, you may debug it remotely from the build computer, but not directly on the test computer. Despite its name, **`/DEBUG:FASTLINK`** is generally slower than **`/DEBUG:FULL`**, so this option is not recommended.
23+
The **`/DEBUG:FASTLINK`** option is available in Visual Studio 2017 and later. This option generates a limited PDB that indexes into the debug information in the object files and libraries used to build the executable instead of making a full copy. You can only use this limited PDB to debug from the computer where the binary and its libraries were built. If you deploy the binary elsewhere, you may debug it remotely from the build computer, but not directly on the test computer. Since Visual Studio 2019, **`/DEBUG:FULL`** linking times have improved significantly, and **`/DEBUG:FASTLINK`** isn't always faster than **`/DEBUG:FULL`**. Since **`/DEBUG:FASTLINK`** no longer provides large build time improvements and results in a slower debugging experience versus **`/DEBUG:FULL`**, this option is no longer recommended.
2424

2525
A **`/DEBUG:FASTLINK`** PDB can be converted to a full PDB that you can deploy to a test machine for local debugging. In Visual Studio, use the **Property Pages** dialog as described below to create a full PDB for the project or solution. In a developer command prompt, you can use the `mspdbcmf.exe` tool to create a full PDB.
2626

docs/error-messages/compiler-errors-2/compiler-error-c3550.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,23 @@ ms.assetid: 9f2d5ffc-e429-41a1-89e3-7acc4fd47e14
1010

1111
only plain 'decltype(auto)' is allowed in this context
1212

13-
If `decltype(auto)` is used as a placeholder for the return type of a function, it must be used by itself. It cannot be used as part of a pointer declaration (`decltype(auto*)`), a reference declaration (`decltype(auto&)`), or any other such qualification.
13+
If [`decltype(auto)`](../../cpp/decltype-cpp.md#decltype-and-auto) is used as a placeholder for the return type of a function, it must be used by itself. It cannot be used as part of a pointer declaration (`decltype(auto)*`), a reference declaration (`decltype(auto)&`), or any other such qualification.
14+
15+
## Example
16+
17+
The following sample generates C3550:
18+
19+
```cpp
20+
// C3550.cpp
21+
// compile with: /c
22+
decltype(auto)* func1(); // C3550
23+
decltype(auto)& func2(); // C3550
24+
decltype(auto)&& func3(); // C3550
25+
26+
auto* func4(); // OK
27+
```
28+
29+
To resolve the error remove all illegal qualification on `decltype(auto)`. For instance, `decltype(auto)* func1()` can be turned into `auto* func1()`.
1430
1531
## See also
1632

0 commit comments

Comments
 (0)