Skip to content

Commit f7e3438

Browse files
committed
Merge branch 'main' into feb_22
2 parents 27eb736 + d0540b2 commit f7e3438

File tree

55 files changed

+570
-257
lines changed

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

+570
-257
lines changed

docs/assembler/masm/masm-bnf-grammar.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ The BNF grammar allows recursive definitions. For example, the grammar uses *`qu
2222
  *`endOfLine`* | *`comment`*
2323

2424
*`=Dir`*\
25-
  *`id`* = *`immExpr`* *`;;`*
25+
  *`id`* **`=`** *`immExpr`* *`;;`*
2626

2727
*`addOp`*\
2828
  **`+`** | **`-`**
@@ -492,7 +492,7 @@ The BNF grammar allows recursive definitions. For example, the grammar uses *`qu
492492
  *`immExpr`*\
493493
  | *`string`*\
494494
  | **`?`**\
495-
  | *`constExpr`* **`DUP`** ( *`scalarInstList`* )\
495+
  | *`constExpr`* **`DUP`** **`(`** *`scalarInstList`* **`)`**\
496496
  | *`floatNumber`*\
497497
  | *`bcdConst`*
498498

@@ -591,7 +591,7 @@ The BNF grammar allows recursive definitions. For example, the grammar uses *`qu
591591

592592
*`macroCall`*\
593593
  *`id`* *`macroArgList`* *`;;`*\
594-
  | *`id`* ( *`macroArgList`* )
594+
  | *`id`* **`(`** *`macroArgList`* **`)`**
595595

596596
*`macroDir`*\
597597
  *`id`* **`MACRO`***`macroParmList`**`;;`*\
@@ -716,7 +716,7 @@ The BNF grammar allows recursive definitions. For example, the grammar uses *`qu
716716
  | **`OLDMACROS`** | **`NOOLDMACROS`**\
717717
  | **`OLDSTRUCTS`** | **`NOOLDSTRUCTS`**\
718718
  | **`PROC`** **`:`** *`oVisibility`*\
719-
  | **`PROLOGUE`** : *`macroId`*\
719+
  | **`PROLOGUE`** **`:`** *`macroId`*\
720720
  | **`READONLY`** | **`NOREADONLY`**\
721721
  | **`SCOPED`** | **`NOSCOPED`**\
722722
  | **`SEGMENT`** **`:`** *`segSize`*\

docs/atl/reference/compiler-options-macros.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ _ATL_FREE_THREADED
122122

123123
Specifies free threading. Free threading is equivalent to a multithread apartment model. See [Specifying the Project's Threading Model](../../atl/specifying-the-threading-model-for-a-project-atl.md) for other threading options, and [Options, ATL Simple Object Wizard](../../atl/reference/options-atl-simple-object-wizard.md) for a description of the threading models available for an ATL object.
124124

125-
## <a name="_ATL_MODULES"></a> `_ATLMODULES`
125+
## <a name="_ATL_MODULES"></a> `_ATL_MODULES`
126126

127127
Allows you to compile ATL projects with [`permissive-`](../../build/reference/permissive-standards-conformance.md) and use ATL with [C++ modules](../../cpp/modules-cpp.md).
128128

docs/build-insights/index.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ metadata:
66
title: C++ Build Insights
77
description: Learn how to use C++ Build Insights to analyze and optimize your builds.
88
ms.topic: landing-page
9-
author: corob-msft
10-
ms.author: corob
9+
author: tylermsft
10+
ms.author: twhitney
1111
ms.date: 05/26/2020
1212
ms.custom: intro-landing-hub
1313

docs/build-insights/reference/vcperf-commands.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,23 @@ This article lists and describes the commands available in *`vcperf.exe`*, and h
1818
## Commands to start and stop traces
1919

2020
> [!IMPORTANT]
21-
> The following commands all require administrative privileges.
21+
> Unless you specify `/noadmin`, the following commands require administrative privileges.
2222
2323
| Option | Arguments and description |
2424
|------------------|---------------------------|
25-
| `/start` | `[/nocpusampling]` `<sessionName>` |
26-
| | Tells *vcperf.exe* to start a trace under the given session name. There can only be one active session at a time on a given machine. <br/><br/> If the `/nocpusampling` option is specified, *vcperf.exe* doesn't collect CPU samples. It prevents the use of the CPU Usage (Sampled) view in Windows Performance Analyzer, but makes the collected traces smaller. <br/><br/> Once tracing is started, *vcperf.exe* returns immediately. Events are collected system-wide for all processes running on the machine. That means that you don't need to build your project from the same command prompt as the one you used to run *vcperf.exe*. For example, you can build your project from Visual Studio. |
27-
| `/stop` | `<sessionName>` `<outputFile.etl>` |
28-
| | Stops the trace identified by the given session name. Runs a post-processing step on the trace to generate a file viewable in Windows Performance Analyzer (WPA). For the best viewing experience, use a version of WPA that includes the C++ Build Insights add-in. For more information, see [Get started with C++ Build Insights](../get-started-with-cpp-build-insights.md). The `<outputFile.etl>` parameter specifies where to save the output file. |
29-
| `/stopnoanalyze` | `<sessionName>` `<rawOutputFile.etl>` |
30-
| | Stops the trace identified by the given session name and writes the raw, unprocessed data in the specified output file. The resulting file isn't meant to be viewed in WPA. <br/><br/> The post-processing step involved in the `/stop` command can sometimes be lengthy. You can use the `/stopnoanalyze` command to delay this post-processing step. Use the `/analyze` command when you're ready to produce a file viewable in Windows Performance Analyzer. |
25+
| `/start` | [`/noadmin`] [`/nocpusampling`] [`/level1` \| `/level2` \| `/level3`] `<sessionName>` |
26+
| | Starts a trace under the given session name. <br/><br/> The `/noadmin` option runs *vcperf.exe* without admin privileges, and it ignores the `/nocpusampling` option. When you run vcperf without admin privileges, there can be more than one active session on a given machine. <br/><br/> The `/nocpusampling` option specifies *vcperf.exe* doesn't collect CPU samples. It prevents the use of the CPU Usage (Sampled) view in Windows Performance Analyzer, but makes the collected traces smaller. <br/><br/> The `/level1`, `/level2`, or `/level3` options specify which MSVC events to collect, in increasing level of information. Level 3 includes all events. Level 2 includes all events except template instantiation events. Level 1 includes all events except template instantiation, function, and file events. If unspecified, `/level2` is selected by default. <br/><br/> Once *vcperf.exe* starts the trace, it returns immediately. The trace collects events system-wide for all processes running on the machine. That means that you don't need to build your project in the same command prompt window as the one you use to run *vcperf.exe*. For example, you can build your project in Visual Studio. |
27+
| `/stop` | (1) [`/templates`] `<sessionName> <outputFile.etl>` <br/> (2) [`/templates`] `<sessionName> /timetrace <outputFile.json>` |
28+
| | Stops the trace identified by the given session name. Runs a post-processing step on the trace to generate a file specified by the `<outputFile>` parameter. <br/><br/> The `/templates` option includes template instantiation events in the file. <br/><br/> (1) Generates a file viewable in Windows Performance Analyzer (WPA). The output file requires a `.etl` extension.<br/>(2) Generates a file viewable in the Microsoft Edge trace viewer (`edge://tracing`). The output file requires a `.json` extension. |
29+
| `/stopnoanalyze` | `<sessionName> <rawOutputFile.etl>` |
30+
| | Stops the trace identified by the given session name and writes the raw, unprocessed data in the specified output file. The resulting file isn't meant for viewing in WPA. <br/><br/> The post-processing step involved in the `/stop` command can sometimes be lengthy. You can use the `/stopnoanalyze` command to delay this post-processing step. Use the `/analyze` command when you're ready to produce a file viewable in Windows Performance Analyzer or the Microsoft Edge trace viewer. |
3131

3232
## Miscellaneous commands
3333

3434
| Option | Arguments and description |
3535
|------------|---------------------------|
36-
| `/analyze` | `<rawInputFile.etl> <outputFile.etl>` |
37-
| | Accepts a raw trace file produced by the `/stopnoanalyze` command. Runs a post-processing step on this trace to generate a file viewable in Windows Performance Analyzer. For the best viewing experience, use a version of WPA that includes the C++ Build Insights add-in. For more information, see [Get started with C++ Build Insights](../get-started-with-cpp-build-insights.md). |
36+
| `/analyze` | (1) [`/templates`] `<rawInputFile.etl> <outputFile.etl>` <br/>(2) [`/templates`] `<rawInputFile.etl> /timetrace <outputFile.json>` |
37+
| | Accepts a raw trace file produced by the `/stopnoanalyze` command. Runs a post-processing step on this trace to generate the file specified by the `<outputFile>` parameter. <br/><br/> The `/templates` option includes template instantiation events in the file. <br/><br/> (1) Generates a file viewable in Windows Performance Analyzer (WPA). The output file requires a `.etl` extension. <br/><br/> (2) Generates a file viewable in the Microsoft Edge trace viewer (`edge://tracing`). The output file requires a `.json` extension. |
3838

3939
## See also
4040

docs/build/arm64-exception-handling.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ The fields are as follows:
357357
- **CR** is a 2-bit flag indicating whether the function includes extra instructions to set up a frame chain and return link:
358358
- 00 = unchained function, `<x29,lr>` pair isn't saved in stack
359359
- 01 = unchained function, `<lr>` is saved in stack
360-
- 10 = chained function with signed return address
360+
- 10 = chained function with a `pacibsp` signed return address
361361
- 11 = chained function, a store/load pair instruction is used in prolog/epilog `<x29,lr>`
362362
- **H** is a 1-bit flag indicating whether the function homes the integer parameter registers (x0-x7) by storing them at the very start of the function. (0 = doesn't home registers, 1 = homes registers).
363363
- **RegI** is a 4-bit field indicating the number of non-volatile INT registers (x19-x28) saved in the canonical stack location.
@@ -382,7 +382,7 @@ Step 6: Allocate remaining stack, including local area, `<x29,lr>` pair, and out
382382
| Step # | Flag values | # of instructions | Opcode | Unwind code |
383383
|--|--|--|--|--|
384384
| 0 | | | `#intsz = RegI * 8;`<br/>`if (CR==01) #intsz += 8; // lr`<br/>`#fpsz = RegF * 8;`<br/>`if(RegF) #fpsz += 8;`<br/>`#savsz=((#intsz+#fpsz+8*8*H)+0xf)&~0xf)`<br/>`#locsz = #famsz - #savsz` |
385-
| 1 | **CR** == 11 | 1 | `pacibsp` | `pac_sign_lr` |
385+
| 1 | **CR** == 10 | 1 | `pacibsp` | `pac_sign_lr` |
386386
| 2 | 0 < **RegI** <= 10 | **RegI** / 2 +<br/> **RegI** % 2 | `stp x19,x20,[sp,#savsz]!`<br/>`stp x21,x22,[sp,#16]`<br/>`...` | `save_regp_x`<br/>`save_regp`<br/>`...` |
387387
| 3 | **CR** == 01\* | 1 | `str lr,[sp,#(intsz-8)]`\* | `save_reg` |
388388
| 4 | 0 < **RegF** <= 7 | (**RegF** + 1) / 2 +<br/>(**RegF** + 1) % 2) | `stp d8,d9,[sp,#intsz]`\*\*<br/>`stp d10,d11,[sp,#(intsz+16)]`<br/>`...`<br/>`str d(8+RegF),[sp,#(intsz+fpsz-8)]` | `save_fregp`<br/>`...`<br/>`save_freg` |

docs/build/building-on-the-command-line.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ The Start menu folder and shortcut names vary depending on the installed version
7979

8080
For an even faster way to open a developer command prompt, enter *developer command prompt* in the desktop search box. Then choose the result you want.
8181

82+
> [!NOTE]
83+
> By default, the current working directory in a developer command prompt is the root of your Visual Studio installation in the Program Files directory. This isn't an appropriate location for your code and projects. Change the current working directory to another location before you create a project. The IDE creates projects in your user directory, typically in *%USERPROFILE%\\source\\repos*.
84+
8285
## <a name="developer_command_file_locations"></a> Developer command file locations
8386

8487
If you prefer to set the build environment in an existing command prompt window, you can use one of the command files created by the installer. We recommend you set the environment in a new command prompt window. We don't recommend you later switch environments in the same command window.
@@ -144,7 +147,7 @@ When used with no arguments, *`vcvarsall.bat`* configures the environment variab
144147

145148
### `vcvarsall` syntax
146149

147-
> **`vcvarsall.bat`** [*`architecture`*] [*`platform_type`*] [*`winsdk_version`*] [**`-vcvars_ver=`**_`vcversion`_] [*`spectre_mode`*]
150+
> **`vcvarsall.bat`** [*`architecture`*] [*`platform_type`*] [*`winsdk_version`*] [**`-vcvars_ver=`***`vcversion`*] [*`spectre_mode`*]
148151
149152
*`architecture`*<br/>
150153
This optional argument specifies the host and target architecture to use. If *architecture* isn't specified, the default build environment is used. These arguments are supported:

docs/build/cmakesettings-reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ If you don't define the `"type"`, the `"STRING"` type is assumed by default.
145145

146146
## <a name="environments"></a> Environments
147147

148-
An *environment* encapsulates the environment variables set in the process that Visual Studio uses to invoke CMake. For MSVC projects, it captures the variables set in a [developer command prompt](building-on-the-command-line.md) for a specific platform. For example, the `msvc_x64_x64` environment is the same as running the **Developer Command Prompt for VS 2017** or **Developer Command Prompt for VS 2019** with the **-arch=amd64 -host_arch=amd64** arguments. You can use the `env.{<variable_name>}` syntax in *`CMakeSettings.json`* to reference the individual environment variables, for example to construct paths to folders. The following predefined environments are provided:
148+
An *environment* encapsulates the environment variables set in the process that Visual Studio uses to invoke CMake. For MSVC projects, it captures the variables set in a [developer command prompt](building-on-the-command-line.md) for a specific platform. For example, the `msvc_x64_x64` environment is the same as running the **Developer Command Prompt for VS {version}** with the **-arch=amd64 -host_arch=amd64** arguments. You can use the `env.{<variable_name>}` syntax in *`CMakeSettings.json`* to reference the individual environment variables, for example to construct paths to folders. The following predefined environments are provided:
149149

150150
- `linux_arm`: Target ARM Linux remotely.
151151
- `linux_x64`: Target x64 Linux remotely.

docs/build/reference/clrunmanagedcodecheck-add-suppressunmanagedcodesecurityattribute.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ ms.topic: "reference"
66
f1_keywords: ["VC.Project.VCLinkerTool.CLRUnmanagedCodeCheck", "/CLRUNMANAGEDCODECHECK"]
77
helpviewer_keywords: ["-CLRUNMANAGEDCODECHECK linker option", "/CLRUNMANAGEDCODECHECK linker option"]
88
ms.assetid: 73abc426-dab0-45e2-be85-0f9a14206cc2
9-
author: "corob-msft"
10-
ms.author: "corob"
9+
author: "tylermsft"
10+
ms.author: "twhitney"
1111
---
1212
# `/CLRUNMANAGEDCODECHECK` (Remove SuppressUnmanagedCodeSecurityAttribute)
1313

docs/build/reference/netmodule-files-as-linker-input.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ link.exe accepts MSIL *`.obj`* and *`.netmodule`* files as input. The output fil
1616

1717
The linker must be passed the *`.obj`* file from the C++ compilation that created the *`.netmodule`*. Passing in a *`.netmodule`* is no longer supported because the **/clr:pure** and **/clr:safe** compiler options are deprecated in Visual Studio 2015 and unsupported in Visual Studio 2017 and later.
1818

19-
For information on how to invoke the linker from the command line, see [Linker command-line syntax](linking.md), [Use the MSVC toolset from the command line](../building-on-the-command-line.md), and [Use the MSVC toolset from the command line](../building-on-the-command-line.md).
19+
For information on how to invoke the linker from the command line, see [Linker command-line syntax](linking.md) and [Use the MSVC toolset from the command line](../building-on-the-command-line.md).
2020

2121
Passing a *`.netmodule`* or *`.dll`* file to the linker that was compiled by the MSVC compiler with **/clr** can result in a linker error. For more information, see [Choosing the format of .netmodule input files](choosing-the-format-of-netmodule-input-files.md).
2222

docs/build/reference/scandependencies.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
title: "/scanDependencies (List module and header unit dependencies per Standard)"
33
description: "Reference guide to the /scanDependencies compiler option in Microsoft C++."
44
ms.date: 09/21/2022
5-
author: "corob-msft"
6-
ms.author: "corob"
5+
author: "tylermsft"
6+
ms.author: "twhitney"
77
f1_keywords: ["/scanDependencies"]
88
helpviewer_keywords: ["/scanDependencies compiler option", "/scanDependencies"]
99
---

0 commit comments

Comments
 (0)