From f02c3f82f793b55879aa9449fe08fec435da046a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?joseLu=C3=ADs?=
Date: Sat, 18 Jan 2025 16:01:54 +0100
Subject: [PATCH 01/59] re-export `core::iter::FromCoroutine`
---
library/core/src/iter/mod.rs | 6 +++---
library/core/src/iter/sources.rs | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/library/core/src/iter/mod.rs b/library/core/src/iter/mod.rs
index 635e14e769a8..d62a445d704a 100644
--- a/library/core/src/iter/mod.rs
+++ b/library/core/src/iter/mod.rs
@@ -420,14 +420,14 @@ pub use self::adapters::{Intersperse, IntersperseWith};
issue = "42168"
)]
pub use self::range::Step;
+#[stable(feature = "iter_empty", since = "1.2.0")]
+pub use self::sources::{Empty, empty};
#[unstable(
feature = "iter_from_coroutine",
issue = "43122",
reason = "coroutines are unstable"
)]
-pub use self::sources::from_coroutine;
-#[stable(feature = "iter_empty", since = "1.2.0")]
-pub use self::sources::{Empty, empty};
+pub use self::sources::{FromCoroutine, from_coroutine};
#[stable(feature = "iter_from_fn", since = "1.34.0")]
pub use self::sources::{FromFn, from_fn};
#[stable(feature = "iter_once", since = "1.2.0")]
diff --git a/library/core/src/iter/sources.rs b/library/core/src/iter/sources.rs
index c635992dfbd1..1eb4367b1837 100644
--- a/library/core/src/iter/sources.rs
+++ b/library/core/src/iter/sources.rs
@@ -15,7 +15,7 @@ pub use self::empty::{Empty, empty};
issue = "43122",
reason = "coroutines are unstable"
)]
-pub use self::from_coroutine::from_coroutine;
+pub use self::from_coroutine::{FromCoroutine, from_coroutine};
#[stable(feature = "iter_from_fn", since = "1.34.0")]
pub use self::from_fn::{FromFn, from_fn};
#[stable(feature = "iter_once", since = "1.2.0")]
From 3f09a2054921708ac8288ac9912885dbe66682ec Mon Sep 17 00:00:00 2001
From: Jack Rickard
Date: Mon, 3 Feb 2025 13:56:20 +0000
Subject: [PATCH 02/59] Do not allow attributes on struct field rest patterns
This removes support for attributes on struct field rest patterns (the `..`) from the parser.
Previously they were being parsed but dropped from the AST, so didn't work and were deleted by rustfmt.
---
compiler/rustc_parse/src/parser/pat.rs | 22 +++++++++----------
.../parser/attribute/attr-pat-struct-rest.rs | 8 +++++++
.../attribute/attr-pat-struct-rest.stderr | 10 +++++++++
3 files changed, 29 insertions(+), 11 deletions(-)
create mode 100644 tests/ui/parser/attribute/attr-pat-struct-rest.rs
create mode 100644 tests/ui/parser/attribute/attr-pat-struct-rest.stderr
diff --git a/compiler/rustc_parse/src/parser/pat.rs b/compiler/rustc_parse/src/parser/pat.rs
index 64bcb1a5a36c..8ce749ec8141 100644
--- a/compiler/rustc_parse/src/parser/pat.rs
+++ b/compiler/rustc_parse/src/parser/pat.rs
@@ -1472,17 +1472,6 @@ impl<'a> Parser<'a> {
let mut last_non_comma_dotdot_span = None;
while self.token != token::CloseDelim(Delimiter::Brace) {
- let attrs = match self.parse_outer_attributes() {
- Ok(attrs) => attrs,
- Err(err) => {
- if let Some(delayed) = delayed_err {
- delayed.emit();
- }
- return Err(err);
- }
- };
- let lo = self.token.span;
-
// check that a comma comes after every field
if !ate_comma {
let err = if self.token == token::At {
@@ -1585,6 +1574,17 @@ impl<'a> Parser<'a> {
}
}
+ let attrs = match self.parse_outer_attributes() {
+ Ok(attrs) => attrs,
+ Err(err) => {
+ if let Some(delayed) = delayed_err {
+ delayed.emit();
+ }
+ return Err(err);
+ }
+ };
+ let lo = self.token.span;
+
let field = self.collect_tokens(None, attrs, ForceCollect::No, |this, attrs| {
let field = match this.parse_pat_field(lo, attrs) {
Ok(field) => Ok(field),
diff --git a/tests/ui/parser/attribute/attr-pat-struct-rest.rs b/tests/ui/parser/attribute/attr-pat-struct-rest.rs
new file mode 100644
index 000000000000..b2bfcf82df8d
--- /dev/null
+++ b/tests/ui/parser/attribute/attr-pat-struct-rest.rs
@@ -0,0 +1,8 @@
+// #81282: Attributes are not allowed on struct field rest patterns (the ..).
+
+struct S {}
+
+fn main() {
+ let S { #[cfg(any())] .. } = S {};
+ //~^ ERROR expected identifier, found `..`
+}
diff --git a/tests/ui/parser/attribute/attr-pat-struct-rest.stderr b/tests/ui/parser/attribute/attr-pat-struct-rest.stderr
new file mode 100644
index 000000000000..f72c54973fce
--- /dev/null
+++ b/tests/ui/parser/attribute/attr-pat-struct-rest.stderr
@@ -0,0 +1,10 @@
+error: expected identifier, found `..`
+ --> $DIR/attr-pat-struct-rest.rs:6:27
+ |
+LL | let S { #[cfg(any())] .. } = S {};
+ | - ^^ expected identifier
+ | |
+ | while parsing the fields for this pattern
+
+error: aborting due to 1 previous error
+
From e9cb36bd0f86bc79587ecf840ff6b2fa7cc94d17 Mon Sep 17 00:00:00 2001
From: Augie Fackler
Date: Tue, 4 Feb 2025 10:35:05 -0500
Subject: [PATCH 03/59] nvptx64: update default alignment to match LLVM 21
This changed in llvm/llvm-project@91cb8f5d3202870602c6bef807bc4c7ae8a32790.
The commit itself is mostly about some intrinsic instructions, but as an
aside it also mentions something about addrspace for tensor memory,
which I believe is what this string is telling us.
@rustbot label: +llvm-main
---
compiler/rustc_codegen_llvm/src/context.rs | 6 ++++++
.../rustc_target/src/spec/targets/nvptx64_nvidia_cuda.rs | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/compiler/rustc_codegen_llvm/src/context.rs b/compiler/rustc_codegen_llvm/src/context.rs
index ba4fd75fb941..ebb4b421ad00 100644
--- a/compiler/rustc_codegen_llvm/src/context.rs
+++ b/compiler/rustc_codegen_llvm/src/context.rs
@@ -194,6 +194,12 @@ pub(crate) unsafe fn create_module<'ll>(
target_data_layout = target_data_layout.replace("-i128:128", "");
}
}
+ if llvm_version < (21, 0, 0) {
+ if sess.target.arch == "nvptx64" {
+ // LLVM 21 updated the default layout on nvptx: https://github.com/llvm/llvm-project/pull/124961
+ target_data_layout = target_data_layout.replace("e-p6:32:32-i64", "e-i64");
+ }
+ }
// Ensure the data-layout values hardcoded remain the defaults.
{
diff --git a/compiler/rustc_target/src/spec/targets/nvptx64_nvidia_cuda.rs b/compiler/rustc_target/src/spec/targets/nvptx64_nvidia_cuda.rs
index 289251e906a0..80bfa3582438 100644
--- a/compiler/rustc_target/src/spec/targets/nvptx64_nvidia_cuda.rs
+++ b/compiler/rustc_target/src/spec/targets/nvptx64_nvidia_cuda.rs
@@ -5,7 +5,7 @@ use crate::spec::{
pub(crate) fn target() -> Target {
Target {
arch: "nvptx64".into(),
- data_layout: "e-i64:64-i128:128-v16:16-v32:32-n16:32:64".into(),
+ data_layout: "e-p6:32:32-i64:64-i128:128-v16:16-v32:32-n16:32:64".into(),
llvm_target: "nvptx64-nvidia-cuda".into(),
metadata: crate::spec::TargetMetadata {
description: Some("--emit=asm generates PTX code that runs on NVIDIA GPUs".into()),
From 04e580fcc50f54bc49a44dbf9ef386f88b41a291 Mon Sep 17 00:00:00 2001
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Date: Fri, 7 Feb 2025 20:58:27 +0000
Subject: [PATCH 04/59] Merge commit '8332329f83d4ef34479fec67cc21b21246dca6b5'
into sync_cg_clif-2025-02-07
---
Cargo.lock | 60 +++++++++----------
Cargo.toml | 26 ++++----
build_system/prepare.rs | 2 +-
build_system/tests.rs | 8 ---
example/mini_core_hello_world.rs | 2 +-
...coretests-Disable-long-running-tests.patch | 4 +-
rust-toolchain | 2 +-
scripts/test_rustc_tests.sh | 22 +++++--
src/compiler_builtins.rs | 1 +
src/driver/jit.rs | 12 ++--
src/intrinsics/llvm_aarch64.rs | 24 ++++++++
src/lib.rs | 5 +-
12 files changed, 97 insertions(+), 71 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index b5aba86079fc..ca66ec5c6e93 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -43,24 +43,24 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "cranelift-bforest"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac89549be94911dd0e839b4a7db99e9ed29c17517e1c026f61066884c168aa3c"
+checksum = "e15d04a0ce86cb36ead88ad68cf693ffd6cda47052b9e0ac114bc47fd9cd23c4"
dependencies = [
"cranelift-entity",
]
[[package]]
name = "cranelift-bitset"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9bd49369f76c77e34e641af85d0956869237832c118964d08bf5f51f210875a"
+checksum = "7c6e3969a7ce267259ce244b7867c5d3bc9e65b0a87e81039588dfdeaede9f34"
[[package]]
name = "cranelift-codegen"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd96ce9cf8efebd7f5ab8ced5a0ce44250280bbae9f593d74a6d7effc3582a35"
+checksum = "2c22032c4cb42558371cf516bb47f26cdad1819d3475c133e93c49f50ebf304e"
dependencies = [
"bumpalo",
"cranelift-bforest",
@@ -82,42 +82,42 @@ dependencies = [
[[package]]
name = "cranelift-codegen-meta"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a68e358827afe4bfb6239fcbf6fbd5ac56206ece8a99c8f5f9bbd518773281a"
+checksum = "c904bc71c61b27fc57827f4a1379f29de64fe95653b620a3db77d59655eee0b8"
dependencies = [
"cranelift-codegen-shared",
]
[[package]]
name = "cranelift-codegen-shared"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e184c9767afbe73d50c55ec29abcf4c32f9baf0d9d22b86d58c4d55e06dee181"
+checksum = "40180f5497572f644ce88c255480981ae2ec1d7bb4d8e0c0136a13b87a2f2ceb"
[[package]]
name = "cranelift-control"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc7664f2a66f053e33f149e952bb5971d138e3af637f5097727ed6dc0ed95dd"
+checksum = "26d132c6d0bd8a489563472afc171759da0707804a65ece7ceb15a8c6d7dd5ef"
dependencies = [
"arbitrary",
]
[[package]]
name = "cranelift-entity"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "118597e3a9cf86c3556fa579a7a23b955fa18231651a52a77a2475d305a9cf84"
+checksum = "4b2d0d9618275474fbf679dd018ac6e009acbd6ae6850f6a67be33fb3b00b323"
dependencies = [
"cranelift-bitset",
]
[[package]]
name = "cranelift-frontend"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7638ea1efb069a0aa18d8ee67401b6b0d19f6bfe5de5e9ede348bfc80bb0d8c7"
+checksum = "4fac41e16729107393174b0c9e3730fb072866100e1e64e80a1a963b2e484d57"
dependencies = [
"cranelift-codegen",
"log",
@@ -127,15 +127,15 @@ dependencies = [
[[package]]
name = "cranelift-isle"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15c53e1152a0b01c4ed2b1e0535602b8e86458777dd9d18b28732b16325c7dc0"
+checksum = "1ca20d576e5070044d0a72a9effc2deacf4d6aa650403189d8ea50126483944d"
[[package]]
name = "cranelift-jit"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36972cab12ff246afe8d45b6a427669cf814bd393c661e5e8a8dedc26a81c73f"
+checksum = "5e65c42755a719b09662b00c700daaf76cc35d5ace1f5c002ad404b591ff1978"
dependencies = [
"anyhow",
"cranelift-codegen",
@@ -153,9 +153,9 @@ dependencies = [
[[package]]
name = "cranelift-module"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11841b3f54ac480db1e8e8d5678ba901a13b387012d315e3f8fba3e7b7a80447"
+checksum = "4d55612bebcf16ff7306c8a6f5bdb6d45662b8aa1ee058ecce8807ad87db719b"
dependencies = [
"anyhow",
"cranelift-codegen",
@@ -164,9 +164,9 @@ dependencies = [
[[package]]
name = "cranelift-native"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b7d8f895444fa52dd7bdd0bed11bf007a7fb43af65a6deac8fcc4094c6372f7"
+checksum = "b8dee82f3f1f2c4cba9177f1cc5e350fe98764379bcd29340caa7b01f85076c7"
dependencies = [
"cranelift-codegen",
"libc",
@@ -175,9 +175,9 @@ dependencies = [
[[package]]
name = "cranelift-object"
-version = "0.115.0"
+version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e235ddfd19f100855ad03358c7ae0a13070c38a000701054cab46458cca6e81"
+checksum = "aad5a6d3e379493c3f8b35dc61c93d0bf5f27003bbe20614e0200b0ec372ef52"
dependencies = [
"anyhow",
"cranelift-codegen",
@@ -413,9 +413,9 @@ dependencies = [
[[package]]
name = "target-lexicon"
-version = "0.12.16"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
+checksum = "dc12939a1c9b9d391e0b7135f72fd30508b73450753e28341fed159317582a77"
[[package]]
name = "unicode-ident"
@@ -425,9 +425,9 @@ checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
[[package]]
name = "wasmtime-jit-icache-coherence"
-version = "28.0.0"
+version = "29.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d40d7722b9e1fbeae135715710a8a2570b1e6cf72b74dd653962d89831c6c70d"
+checksum = "ec5e8552e01692e6c2e5293171704fed8abdec79d1a6995a0870ab190e5747d1"
dependencies = [
"anyhow",
"cfg-if",
diff --git a/Cargo.toml b/Cargo.toml
index bfdbc3e768a6..670d6f4eef5c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -8,13 +8,13 @@ crate-type = ["dylib"]
[dependencies]
# These have to be in sync with each other
-cranelift-codegen = { version = "0.115.0", default-features = false, features = ["std", "unwind", "all-native-arch"] }
-cranelift-frontend = { version = "0.115.0" }
-cranelift-module = { version = "0.115.0" }
-cranelift-native = { version = "0.115.0" }
-cranelift-jit = { version = "0.115.0", optional = true }
-cranelift-object = { version = "0.115.0" }
-target-lexicon = "0.12.0"
+cranelift-codegen = { version = "0.116.0", default-features = false, features = ["std", "unwind", "all-native-arch"] }
+cranelift-frontend = { version = "0.116.0" }
+cranelift-module = { version = "0.116.0" }
+cranelift-native = { version = "0.116.0" }
+cranelift-jit = { version = "0.116.0", optional = true }
+cranelift-object = { version = "0.116.0" }
+target-lexicon = "0.13"
gimli = { version = "0.31", default-features = false, features = ["write"] }
object = { version = "0.36", default-features = false, features = ["std", "read_core", "write", "archive", "coff", "elf", "macho", "pe"] }
@@ -24,12 +24,12 @@ smallvec = "1.8.1"
[patch.crates-io]
# Uncomment to use an unreleased version of cranelift
-#cranelift-codegen = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "release-28.0.0", version = "0.115.0" }
-#cranelift-frontend = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "release-28.0.0", version = "0.115.0" }
-#cranelift-module = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "release-28.0.0", version = "0.115.0" }
-#cranelift-native = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "release-28.0.0", version = "0.115.0" }
-#cranelift-jit = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "release-28.0.0", version = "0.115.0" }
-#cranelift-object = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "release-28.0.0", version = "0.115.0" }
+#cranelift-codegen = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "release-29.0.0", version = "0.116.0" }
+#cranelift-frontend = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "release-29.0.0", version = "0.116.0" }
+#cranelift-module = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "release-29.0.0", version = "0.116.0" }
+#cranelift-native = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "release-29.0.0", version = "0.116.0" }
+#cranelift-jit = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "release-29.0.0", version = "0.116.0" }
+#cranelift-object = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "release-29.0.0", version = "0.116.0" }
# Uncomment to use local checkout of cranelift
#cranelift-codegen = { path = "../wasmtime/cranelift/codegen" }
diff --git a/build_system/prepare.rs b/build_system/prepare.rs
index a4e9cb5f5c8c..11f73bdb61f9 100644
--- a/build_system/prepare.rs
+++ b/build_system/prepare.rs
@@ -186,7 +186,7 @@ fn init_git_repo(repo_dir: &Path) {
spawn_and_wait(git_add_cmd);
let mut git_commit_cmd = git_command(repo_dir, "commit");
- git_commit_cmd.arg("-m").arg("Initial commit").arg("-q");
+ git_commit_cmd.arg("-m").arg("Initial commit").arg("-q").arg("--no-verify");
spawn_and_wait(git_commit_cmd);
}
diff --git a/build_system/tests.rs b/build_system/tests.rs
index bcb2b4881ebe..ea7e94c345ad 100644
--- a/build_system/tests.rs
+++ b/build_system/tests.rs
@@ -330,14 +330,6 @@ impl<'a> TestRunner<'a> {
target_compiler.rustflags.extend(rustflags_from_env("RUSTFLAGS"));
target_compiler.rustdocflags.extend(rustflags_from_env("RUSTDOCFLAGS"));
- // FIXME fix `#[linkage = "extern_weak"]` without this
- if target_compiler.triple.contains("darwin") {
- target_compiler.rustflags.extend([
- "-Clink-arg=-undefined".to_owned(),
- "-Clink-arg=dynamic_lookup".to_owned(),
- ]);
- }
-
let jit_supported = use_unstable_features
&& is_native
&& target_compiler.triple.contains("x86_64")
diff --git a/example/mini_core_hello_world.rs b/example/mini_core_hello_world.rs
index e47431e0f873..09d5b73fd3d9 100644
--- a/example/mini_core_hello_world.rs
+++ b/example/mini_core_hello_world.rs
@@ -274,7 +274,7 @@ fn main() {
assert_eq!(((|()| 42u8) as fn(()) -> u8)(()), 42);
- #[cfg(not(any(jit, windows)))]
+ #[cfg(not(any(jit, target_vendor = "apple", windows)))]
{
extern "C" {
#[linkage = "extern_weak"]
diff --git a/patches/0028-coretests-Disable-long-running-tests.patch b/patches/0028-coretests-Disable-long-running-tests.patch
index 5a38dffa24fe..f5ae66c0eb13 100644
--- a/patches/0028-coretests-Disable-long-running-tests.patch
+++ b/patches/0028-coretests-Disable-long-running-tests.patch
@@ -36,8 +36,8 @@ index 8402833..84592e0 100644
#[cfg(not(miri))] // unused in Miri
macro_rules! empty_max_mut {
@@ -2485,6 +2486,7 @@ take_tests! {
- (take_mut_oob_max_range_to_inclusive, (..=usize::MAX), None, empty_max_mut!()),
- (take_mut_in_bounds_max_range_from, (usize::MAX..), Some(&mut [] as _), empty_max_mut!()),
+ (split_off_mut_oob_max_range_to_inclusive, (..=usize::MAX), None, empty_max_mut!()),
+ (split_off_mut_in_bounds_max_range_from, (usize::MAX..), Some(&mut [] as _), empty_max_mut!()),
}
+*/
diff --git a/rust-toolchain b/rust-toolchain
index 9c6aad3490d4..8d423319fa97 100644
--- a/rust-toolchain
+++ b/rust-toolchain
@@ -1,4 +1,4 @@
[toolchain]
-channel = "nightly-2025-01-20"
+channel = "nightly-2025-02-07"
components = ["rust-src", "rustc-dev", "llvm-tools"]
profile = "minimal"
diff --git a/scripts/test_rustc_tests.sh b/scripts/test_rustc_tests.sh
index 41aa011e805d..55230a0b5988 100755
--- a/scripts/test_rustc_tests.sh
+++ b/scripts/test_rustc_tests.sh
@@ -83,7 +83,6 @@ rm tests/ui/match/match-float.rs
# ==================
rm tests/ui/codegen/issue-28950.rs # depends on stack size optimizations
rm tests/ui/codegen/init-large-type.rs # same
-rm tests/ui/issues/issue-40883.rs # same
rm -r tests/run-make/fmt-write-bloat/ # tests an optimization
rm tests/ui/statics/const_generics.rs # same
@@ -91,13 +90,11 @@ rm tests/ui/statics/const_generics.rs # same
# ======================
rm tests/incremental/thinlto/cgu_invalidated_when_import_{added,removed}.rs # requires LLVM
rm -r tests/run-make/cross-lang-lto # same
-rm -r tests/run-make/sepcomp-inlining # same
-rm -r tests/run-make/sepcomp-separate # same
-rm -r tests/run-make/sepcomp-cci-copies # same
rm -r tests/run-make/volatile-intrinsics # same
rm -r tests/run-make/llvm-ident # same
rm -r tests/run-make/no-builtins-attribute # same
rm -r tests/run-make/pgo-gen-no-imp-symbols # same
+rm -r tests/run-make/llvm-location-discriminator-limit-dummy-span # same
rm tests/ui/abi/stack-protector.rs # requires stack protector support
rm -r tests/run-make/emit-stack-sizes # requires support for -Z emit-stack-sizes
rm -r tests/run-make/optimization-remarks-dir # remarks are LLVM specific
@@ -130,6 +127,7 @@ rm tests/ui/abi/large-byval-align.rs # exceeds implementation limit of Cranelift
rm -r tests/run-make/remap-path-prefix-dwarf # requires llvm-dwarfdump
rm -r tests/run-make/strip # same
rm -r tests/run-make/compiler-builtins # Expects lib/rustlib/src/rust to contains the standard library source
+rm -r tests/run-make/translation # same
rm -r tests/run-make/missing-unstable-trait-bound # This disables support for unstable features, but running cg_clif needs some unstable features
rm -r tests/run-make/const-trait-stable-toolchain # same
rm -r tests/run-make/incr-add-rust-src-component
@@ -156,8 +154,6 @@ cp $(../dist/rustc-clif --print target-libdir)/libstd-*.so ../dist/lib/
# prevent $(RUSTDOC) from picking up the sysroot built by x.py. It conflicts with the one used by
# rustdoc-clif
-# FIXME remove the bootstrap changes once it is no longer necessary to revert rust-lang/rust#130642
-# to avoid building rustc when testing stage0 run-make.
cat < u128;
fn __modti3(n: i128, d: i128) -> i128;
fn __rust_u128_mulo(a: u128, b: u128, oflow: &mut i32) -> u128;
+ fn __rust_i128_mulo(a: i128, b: i128, oflow: &mut i32) -> i128;
// floats
fn __floattisf(i: i128) -> f32;
diff --git a/src/driver/jit.rs b/src/driver/jit.rs
index 9ca930e14da5..b18f4ff4747b 100644
--- a/src/driver/jit.rs
+++ b/src/driver/jit.rs
@@ -46,7 +46,7 @@ unsafe impl Send for UnsafeMessage {}
impl UnsafeMessage {
/// Send the message.
- fn send(self) -> Result<(), mpsc::SendError> {
+ fn send(self) {
thread_local! {
/// The Sender owned by the local thread
static LOCAL_MESSAGE_SENDER: mpsc::Sender =
@@ -55,7 +55,9 @@ impl UnsafeMessage {
.lock().unwrap()
.clone();
}
- LOCAL_MESSAGE_SENDER.with(|sender| sender.send(self))
+ LOCAL_MESSAGE_SENDER.with(|sender| {
+ sender.send(self).expect("rustc thread hung up before lazy JIT request was sent")
+ })
}
}
@@ -90,7 +92,7 @@ pub(crate) fn run_jit(tcx: TyCtxt<'_>, codegen_mode: CodegenMode, jit_args: Vec<
create_jit_module(tcx, matches!(codegen_mode, CodegenMode::JitLazy));
let mut cached_context = Context::new();
- let (_, cgus) = tcx.collect_and_partition_mono_items(());
+ let cgus = tcx.collect_and_partition_mono_items(()).codegen_units;
let mono_items = cgus
.iter()
.map(|cgu| cgu.items_in_deterministic_order(tcx).into_iter())
@@ -231,9 +233,7 @@ extern "C" fn clif_jit_fn(
) -> *const u8 {
// send the JIT request to the rustc thread, with a channel for the response
let (tx, rx) = mpsc::channel();
- UnsafeMessage::JitFn { instance_ptr, trampoline_ptr, tx }
- .send()
- .expect("rustc thread hung up before lazy JIT request was sent");
+ UnsafeMessage::JitFn { instance_ptr, trampoline_ptr, tx }.send();
// block on JIT compilation result
rx.recv().expect("rustc thread hung up before responding to sent lazy JIT request")
diff --git a/src/intrinsics/llvm_aarch64.rs b/src/intrinsics/llvm_aarch64.rs
index 39f6763d9f2c..4c59c81296ba 100644
--- a/src/intrinsics/llvm_aarch64.rs
+++ b/src/intrinsics/llvm_aarch64.rs
@@ -17,6 +17,14 @@ pub(crate) fn codegen_aarch64_llvm_intrinsic_call<'tcx>(
fx.bcx.ins().fence();
}
+ "llvm.aarch64.neon.ld1x4.v16i8.p0i8" => {
+ intrinsic_args!(fx, args => (ptr); intrinsic);
+
+ let ptr = ptr.load_scalar(fx);
+ let val = CPlace::for_ptr(Pointer::new(ptr), ret.layout()).to_cvalue(fx);
+ ret.write_cvalue(fx, val);
+ }
+
_ if intrinsic.starts_with("llvm.aarch64.neon.abs.v") => {
intrinsic_args!(fx, args => (a); intrinsic);
@@ -115,6 +123,22 @@ pub(crate) fn codegen_aarch64_llvm_intrinsic_call<'tcx>(
);
}
+ "llvm.aarch64.neon.uaddlv.i32.v16i8" => {
+ intrinsic_args!(fx, args => (v); intrinsic);
+
+ let mut res_val = fx.bcx.ins().iconst(types::I16, 0);
+ for lane_idx in 0..16 {
+ let lane = v.value_lane(fx, lane_idx).load_scalar(fx);
+ let lane = fx.bcx.ins().uextend(types::I16, lane);
+ res_val = fx.bcx.ins().iadd(res_val, lane);
+ }
+ let res = CValue::by_val(
+ fx.bcx.ins().uextend(types::I32, res_val),
+ fx.layout_of(fx.tcx.types.u32),
+ );
+ ret.write_cvalue(fx, res);
+ }
+
_ if intrinsic.starts_with("llvm.aarch64.neon.faddv.f32.v") => {
intrinsic_args!(fx, args => (v); intrinsic);
diff --git a/src/lib.rs b/src/lib.rs
index dc5d80e7a345..b01534199030 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -183,8 +183,8 @@ impl CodegenBackend for CraneliftCodegenBackend {
) -> Vec {
// FIXME return the actually used target features. this is necessary for #[cfg(target_feature)]
if sess.target.arch == "x86_64" && sess.target.os != "none" {
- // x86_64 mandates SSE2 support
- vec![sym::fsxr, sym::sse, sym::sse2]
+ // x86_64 mandates SSE2 support and rustc requires the x87 feature to be enabled
+ vec![sym::fsxr, sym::sse, sym::sse2, Symbol::intern("x87")]
} else if sess.target.arch == "aarch64" {
match &*sess.target.os {
"none" => vec![],
@@ -209,7 +209,6 @@ impl CodegenBackend for CraneliftCodegenBackend {
metadata: EncodedMetadata,
need_metadata_module: bool,
) -> Box {
- tcx.dcx().abort_if_errors();
info!("codegen crate {}", tcx.crate_name(LOCAL_CRATE));
let config = self.config.clone().unwrap_or_else(|| {
BackendConfig::from_opts(&tcx.sess.opts.cg.llvm_args)
From 7d73de8557a3626d9ba68773fcbd01078f926983 Mon Sep 17 00:00:00 2001
From: Trevor Gross
Date: Fri, 7 Feb 2025 20:56:12 +0000
Subject: [PATCH 05/59] Update `compiler-builtins` to 0.1.146
Exposes the error function so we can expose this in the standard
library [1].
[1]: https://github.com/rust-lang/compiler-builtins/pull/753
---
...029-stdlib-Disable-f16-and-f128-in-compiler-builtins.patch | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/patches/0029-stdlib-Disable-f16-and-f128-in-compiler-builtins.patch b/patches/0029-stdlib-Disable-f16-and-f128-in-compiler-builtins.patch
index bac411d1eb03..e3a9512dda9c 100644
--- a/patches/0029-stdlib-Disable-f16-and-f128-in-compiler-builtins.patch
+++ b/patches/0029-stdlib-Disable-f16-and-f128-in-compiler-builtins.patch
@@ -16,8 +16,8 @@ index 7165c3e48af..968552ad435 100644
[dependencies]
core = { path = "../core" }
--compiler_builtins = { version = "=0.1.145", features = ['rustc-dep-of-std'] }
-+compiler_builtins = { version = "=0.1.145", features = ['rustc-dep-of-std', 'no-f16-f128'] }
+-compiler_builtins = { version = "=0.1.146", features = ['rustc-dep-of-std'] }
++compiler_builtins = { version = "=0.1.146", features = ['rustc-dep-of-std', 'no-f16-f128'] }
[dev-dependencies]
rand = { version = "0.8.5", default-features = false, features = ["alloc"] }
From d566b5db9bacd68c696d456a6d18569a50e7cb58 Mon Sep 17 00:00:00 2001
From: Matthew Zeitlin <37011898+mzeitlin11@users.noreply.github.com>
Date: Sat, 8 Feb 2025 16:51:04 -0500
Subject: [PATCH 06/59] Implement Extend for String
---
library/alloc/src/string.rs | 26 ++++++++++++++++++++++++++
library/coretests/tests/ascii_char.rs | 12 ++++++++++++
library/coretests/tests/lib.rs | 1 +
3 files changed, 39 insertions(+)
diff --git a/library/alloc/src/string.rs b/library/alloc/src/string.rs
index b29f740ef0f2..154da6910788 100644
--- a/library/alloc/src/string.rs
+++ b/library/alloc/src/string.rs
@@ -2442,6 +2442,32 @@ impl<'a> Extend> for String {
}
}
+#[cfg(not(no_global_oom_handling))]
+#[unstable(feature = "ascii_char", issue = "110998")]
+impl Extend for String {
+ fn extend>(&mut self, iter: I) {
+ self.vec.extend(iter.into_iter().map(|c| c.to_u8()));
+ }
+
+ #[inline]
+ fn extend_one(&mut self, c: core::ascii::Char) {
+ self.vec.push(c.to_u8());
+ }
+}
+
+#[cfg(not(no_global_oom_handling))]
+#[unstable(feature = "ascii_char", issue = "110998")]
+impl<'a> Extend<&'a core::ascii::Char> for String {
+ fn extend>(&mut self, iter: I) {
+ self.extend(iter.into_iter().cloned());
+ }
+
+ #[inline]
+ fn extend_one(&mut self, c: &'a core::ascii::Char) {
+ self.vec.push(c.to_u8());
+ }
+}
+
/// A convenience impl that delegates to the impl for `&str`.
///
/// # Examples
diff --git a/library/coretests/tests/ascii_char.rs b/library/coretests/tests/ascii_char.rs
index 75b5fd4b9e61..f5a15a9469f3 100644
--- a/library/coretests/tests/ascii_char.rs
+++ b/library/coretests/tests/ascii_char.rs
@@ -26,3 +26,15 @@ fn test_debug_control() {
assert_eq!(want, format!("{chr:?}"), "byte: {byte}");
}
}
+
+/// Tests Extend implementation for ascii::Char.
+#[test]
+fn test_extend() {
+ let mut s = String::from("abc");
+ s.extend_one(Char::SmallD);
+ assert_eq!(s, String::from("abcd"));
+
+ let mut s = String::from("abc");
+ s.extend(Char::CapitalA..=Char::CapitalC);
+ assert_eq!(s, String::from("abcABC"));
+}
diff --git a/library/coretests/tests/lib.rs b/library/coretests/tests/lib.rs
index f1bbed3de301..03527f237c15 100644
--- a/library/coretests/tests/lib.rs
+++ b/library/coretests/tests/lib.rs
@@ -27,6 +27,7 @@
#![feature(duration_constructors)]
#![feature(error_generic_member_access)]
#![feature(exact_size_is_empty)]
+#![feature(extend_one)]
#![feature(extern_types)]
#![feature(float_minimum_maximum)]
#![feature(flt2dec)]
From 6bd92ef9cb41246f2ed5d65d52c8dccb694f3990 Mon Sep 17 00:00:00 2001
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Date: Sat, 8 Feb 2025 22:12:13 +0000
Subject: [PATCH 07/59] Rustfmt
---
example/std_example.rs | 7 ++++---
src/cast.rs | 9 ++++++---
src/debuginfo/object.rs | 21 ++++++++++++---------
src/driver/jit.rs | 14 +++++++++-----
src/inline_asm.rs | 14 +++++++++-----
src/intrinsics/simd.rs | 9 ++++++---
src/main_shim.rs | 9 ++++++---
src/trap.rs | 14 +++++++++-----
8 files changed, 61 insertions(+), 36 deletions(-)
diff --git a/example/std_example.rs b/example/std_example.rs
index 0b1d83c56309..ffdc6a7d4849 100644
--- a/example/std_example.rs
+++ b/example/std_example.rs
@@ -241,9 +241,10 @@ unsafe fn test_simd() {
let (zero0, zero1) = std::mem::transmute::<_, (u64, u64)>(x);
assert_eq!((zero0, zero1), (0, 0));
assert_eq!(std::mem::transmute::<_, [u16; 8]>(or), [7, 7, 7, 7, 7, 7, 7, 7]);
- assert_eq!(std::mem::transmute::<_, [u16; 8]>(cmp_eq), [
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff
- ]);
+ assert_eq!(
+ std::mem::transmute::<_, [u16; 8]>(cmp_eq),
+ [0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff]
+ );
assert_eq!(std::mem::transmute::<_, [u16; 8]>(cmp_lt), [0, 0, 0, 0, 0, 0, 0, 0]);
test_mm_slli_si128();
diff --git a/src/cast.rs b/src/cast.rs
index 4463631c524b..e2346324232f 100644
--- a/src/cast.rs
+++ b/src/cast.rs
@@ -96,9 +96,12 @@ pub(crate) fn clif_int_or_float_cast(
},
);
- fx.lib_call(&name, vec![AbiParam::new(from_ty)], vec![AbiParam::new(types::I128)], &[
- from,
- ])[0]
+ fx.lib_call(
+ &name,
+ vec![AbiParam::new(from_ty)],
+ vec![AbiParam::new(types::I128)],
+ &[from],
+ )[0]
} else if to_ty == types::I8 || to_ty == types::I16 {
// FIXME implement fcvt_to_*int_sat.i8/i16
let val = if to_signed {
diff --git a/src/debuginfo/object.rs b/src/debuginfo/object.rs
index 048a388731fb..1c6e471cc870 100644
--- a/src/debuginfo/object.rs
+++ b/src/debuginfo/object.rs
@@ -73,16 +73,19 @@ impl WriteDebugInfo for ObjectProduct {
}
};
self.object
- .add_relocation(from.0, Relocation {
- offset: u64::from(reloc.offset),
- symbol,
- flags: RelocationFlags::Generic {
- kind: reloc.kind,
- encoding: RelocationEncoding::Generic,
- size: reloc.size * 8,
+ .add_relocation(
+ from.0,
+ Relocation {
+ offset: u64::from(reloc.offset),
+ symbol,
+ flags: RelocationFlags::Generic {
+ kind: reloc.kind,
+ encoding: RelocationEncoding::Generic,
+ size: reloc.size * 8,
+ },
+ addend: i64::try_from(symbol_offset).unwrap() + reloc.addend,
},
- addend: i64::try_from(symbol_offset).unwrap() + reloc.addend,
- })
+ )
.unwrap();
}
}
diff --git a/src/driver/jit.rs b/src/driver/jit.rs
index b18f4ff4747b..2e713171ae06 100644
--- a/src/driver/jit.rs
+++ b/src/driver/jit.rs
@@ -342,11 +342,15 @@ fn codegen_shim<'tcx>(
let instance_ptr = Box::into_raw(Box::new(inst));
let jit_fn = module
- .declare_function("__clif_jit_fn", Linkage::Import, &Signature {
- call_conv: module.target_config().default_call_conv,
- params: vec![AbiParam::new(pointer_type), AbiParam::new(pointer_type)],
- returns: vec![AbiParam::new(pointer_type)],
- })
+ .declare_function(
+ "__clif_jit_fn",
+ Linkage::Import,
+ &Signature {
+ call_conv: module.target_config().default_call_conv,
+ params: vec![AbiParam::new(pointer_type), AbiParam::new(pointer_type)],
+ returns: vec![AbiParam::new(pointer_type)],
+ },
+ )
.unwrap();
let context = cached_context;
diff --git a/src/inline_asm.rs b/src/inline_asm.rs
index 6ff75f75d3b2..f2b0ec977c63 100644
--- a/src/inline_asm.rs
+++ b/src/inline_asm.rs
@@ -875,11 +875,15 @@ fn call_inline_asm<'tcx>(
let inline_asm_func = fx
.module
- .declare_function(asm_name, Linkage::Import, &Signature {
- call_conv: CallConv::SystemV,
- params: vec![AbiParam::new(fx.pointer_type)],
- returns: vec![],
- })
+ .declare_function(
+ asm_name,
+ Linkage::Import,
+ &Signature {
+ call_conv: CallConv::SystemV,
+ params: vec![AbiParam::new(fx.pointer_type)],
+ returns: vec![],
+ },
+ )
.unwrap();
let inline_asm_func = fx.module.declare_func_in_func(inline_asm_func, fx.bcx.func);
if fx.clif_comments.enabled() {
diff --git a/src/intrinsics/simd.rs b/src/intrinsics/simd.rs
index d682efd19aaa..fcccda62355c 100644
--- a/src/intrinsics/simd.rs
+++ b/src/intrinsics/simd.rs
@@ -558,9 +558,12 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
(sym::simd_round, types::F64) => "round",
_ => unreachable!("{:?}", intrinsic),
};
- fx.lib_call(name, vec![AbiParam::new(lane_ty)], vec![AbiParam::new(lane_ty)], &[
- lane,
- ])[0]
+ fx.lib_call(
+ name,
+ vec![AbiParam::new(lane_ty)],
+ vec![AbiParam::new(lane_ty)],
+ &[lane],
+ )[0]
});
}
diff --git a/src/main_shim.rs b/src/main_shim.rs
index f68434968954..6d5df2b00437 100644
--- a/src/main_shim.rs
+++ b/src/main_shim.rs
@@ -15,9 +15,12 @@ pub(crate) fn maybe_create_entry_wrapper(
is_primary_cgu: bool,
) {
let (main_def_id, sigpipe) = match tcx.entry_fn(()) {
- Some((def_id, entry_ty)) => (def_id, match entry_ty {
- EntryFnType::Main { sigpipe } => sigpipe,
- }),
+ Some((def_id, entry_ty)) => (
+ def_id,
+ match entry_ty {
+ EntryFnType::Main { sigpipe } => sigpipe,
+ },
+ ),
None => return,
};
diff --git a/src/trap.rs b/src/trap.rs
index 9ef1a523d6d6..ac3f58ee1ee6 100644
--- a/src/trap.rs
+++ b/src/trap.rs
@@ -5,11 +5,15 @@ use crate::prelude::*;
fn codegen_print(fx: &mut FunctionCx<'_, '_, '_>, msg: &str) {
let puts = fx
.module
- .declare_function("puts", Linkage::Import, &Signature {
- call_conv: fx.target_config.default_call_conv,
- params: vec![AbiParam::new(fx.pointer_type)],
- returns: vec![AbiParam::new(types::I32)],
- })
+ .declare_function(
+ "puts",
+ Linkage::Import,
+ &Signature {
+ call_conv: fx.target_config.default_call_conv,
+ params: vec![AbiParam::new(fx.pointer_type)],
+ returns: vec![AbiParam::new(types::I32)],
+ },
+ )
.unwrap();
let puts = fx.module.declare_func_in_func(puts, &mut fx.bcx.func);
if fx.clif_comments.enabled() {
From f97679d6ba93ee83dec42a76b804483ddfbd2e11 Mon Sep 17 00:00:00 2001
From: Jubilee Young
Date: Sun, 9 Feb 2025 23:10:29 -0800
Subject: [PATCH 08/59] cg_clif: stop worrying about `Conv::PtxKernel`
---
src/abi/mod.rs | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/src/abi/mod.rs b/src/abi/mod.rs
index fdcd9caf4ac8..756a2226753f 100644
--- a/src/abi/mod.rs
+++ b/src/abi/mod.rs
@@ -65,11 +65,7 @@ pub(crate) fn conv_to_call_conv(sess: &Session, c: Conv, default_call_conv: Call
sess.dcx().fatal("C-cmse-nonsecure-entry call conv is not yet implemented");
}
- Conv::Msp430Intr
- | Conv::PtxKernel
- | Conv::GpuKernel
- | Conv::AvrInterrupt
- | Conv::AvrNonBlockingInterrupt => {
+ Conv::Msp430Intr | Conv::GpuKernel | Conv::AvrInterrupt | Conv::AvrNonBlockingInterrupt => {
unreachable!("tried to use {c:?} call conv which only exists on an unsupported target");
}
}
From 732132f6b1972a65b4ae59da57dda10d5272f8a2 Mon Sep 17 00:00:00 2001
From: Bastian Kersting
Date: Fri, 24 Jan 2025 14:58:33 +0000
Subject: [PATCH 09/59] Extend the renaming to coerce_unsafe_ptr
---
src/base.rs | 4 ++--
src/vtable.rs | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/base.rs b/src/base.rs
index a2b9e5712e50..125a9201831c 100644
--- a/src/base.rs
+++ b/src/base.rs
@@ -900,8 +900,8 @@ fn codegen_stmt<'tcx>(
};
let data = codegen_operand(fx, data);
let meta = codegen_operand(fx, meta);
- assert!(data.layout().ty.is_unsafe_ptr());
- assert!(layout.ty.is_unsafe_ptr());
+ assert!(data.layout().ty.is_raw_ptr());
+ assert!(layout.ty.is_raw_ptr());
let ptr_val = if meta.layout().is_zst() {
data.cast_pointer_to(layout)
} else {
diff --git a/src/vtable.rs b/src/vtable.rs
index a460023b59cb..9d9e0462a9b7 100644
--- a/src/vtable.rs
+++ b/src/vtable.rs
@@ -48,7 +48,7 @@ pub(crate) fn get_ptr_and_method_ref<'tcx>(
) -> (Pointer, Value) {
let (ptr, vtable) = 'block: {
if let BackendRepr::Scalar(_) = arg.layout().backend_repr {
- while !arg.layout().ty.is_unsafe_ptr() && !arg.layout().ty.is_ref() {
+ while !arg.layout().ty.is_raw_ptr() && !arg.layout().ty.is_ref() {
let (idx, _) = arg
.layout()
.non_1zst_field(fx)
From ecad6893321362e75b249f49648835b5a8e7371d Mon Sep 17 00:00:00 2001
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Date: Wed, 12 Feb 2025 16:09:55 +0000
Subject: [PATCH 10/59] Rustup to rustc 1.86.0-nightly (92bedea1c 2025-02-11)
---
rust-toolchain | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rust-toolchain b/rust-toolchain
index 8d423319fa97..4471fdee2aa6 100644
--- a/rust-toolchain
+++ b/rust-toolchain
@@ -1,4 +1,4 @@
[toolchain]
-channel = "nightly-2025-02-07"
+channel = "nightly-2025-02-12"
components = ["rust-src", "rustc-dev", "llvm-tools"]
profile = "minimal"
From 99ec64c34c65630d9a66befa2cbf2faa9478baa0 Mon Sep 17 00:00:00 2001
From: Flakebi
Date: Mon, 10 Feb 2025 22:37:43 +0100
Subject: [PATCH 11/59] Export kernel descriptor for amdgpu kernels
The host runtime (HIP or HSA) expects a kernel descriptor object for
each kernel in the ELF file. The amdgpu LLVM backend generates the
object. It is created as a symbol with the name of the kernel plus a
`.kd` suffix.
Add it to the exported symbols in the linker script, so that it can be
found.
---
compiler/rustc_codegen_ssa/src/back/linker.rs | 1 +
.../src/back/symbol_export.rs | 92 ++++++++++++-------
tests/run-make/amdgpu-kd/foo.rs | 11 +++
tests/run-make/amdgpu-kd/rmake.rs | 20 ++++
4 files changed, 92 insertions(+), 32 deletions(-)
create mode 100644 tests/run-make/amdgpu-kd/foo.rs
create mode 100644 tests/run-make/amdgpu-kd/rmake.rs
diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs
index 8fb831471a9b..a65684f67242 100644
--- a/compiler/rustc_codegen_ssa/src/back/linker.rs
+++ b/compiler/rustc_codegen_ssa/src/back/linker.rs
@@ -1776,6 +1776,7 @@ fn exported_symbols_for_non_proc_macro(tcx: TyCtxt<'_>, crate_type: CrateType) -
symbols.push(symbol_export::exporting_symbol_name_for_instance_in_crate(
tcx, symbol, cnum,
));
+ symbol_export::extend_exported_symbols(&mut symbols, tcx, symbol, cnum);
}
});
diff --git a/compiler/rustc_codegen_ssa/src/back/symbol_export.rs b/compiler/rustc_codegen_ssa/src/back/symbol_export.rs
index 60ab29193525..e498f07641f0 100644
--- a/compiler/rustc_codegen_ssa/src/back/symbol_export.rs
+++ b/compiler/rustc_codegen_ssa/src/back/symbol_export.rs
@@ -10,9 +10,10 @@ use rustc_middle::middle::exported_symbols::{
ExportedSymbol, SymbolExportInfo, SymbolExportKind, SymbolExportLevel, metadata_symbol_name,
};
use rustc_middle::query::LocalCrate;
-use rustc_middle::ty::{self, GenericArgKind, GenericArgsRef, Instance, SymbolName, TyCtxt};
+use rustc_middle::ty::{self, GenericArgKind, GenericArgsRef, Instance, SymbolName, Ty, TyCtxt};
use rustc_middle::util::Providers;
use rustc_session::config::{CrateType, OomStrategy};
+use rustc_target::callconv::Conv;
use rustc_target::spec::{SanitizerSet, TlsModel};
use tracing::debug;
@@ -551,6 +552,42 @@ pub(crate) fn symbol_name_for_instance_in_crate<'tcx>(
}
}
+fn calling_convention_for_symbol<'tcx>(
+ tcx: TyCtxt<'tcx>,
+ symbol: ExportedSymbol<'tcx>,
+) -> (Conv, &'tcx [rustc_target::callconv::ArgAbi<'tcx, Ty<'tcx>>]) {
+ let instance = match symbol {
+ ExportedSymbol::NonGeneric(def_id) | ExportedSymbol::Generic(def_id, _)
+ if tcx.is_static(def_id) =>
+ {
+ None
+ }
+ ExportedSymbol::NonGeneric(def_id) => Some(Instance::mono(tcx, def_id)),
+ ExportedSymbol::Generic(def_id, args) => Some(Instance::new(def_id, args)),
+ // DropGlue always use the Rust calling convention and thus follow the target's default
+ // symbol decoration scheme.
+ ExportedSymbol::DropGlue(..) => None,
+ // AsyncDropGlueCtorShim always use the Rust calling convention and thus follow the
+ // target's default symbol decoration scheme.
+ ExportedSymbol::AsyncDropGlueCtorShim(..) => None,
+ // NoDefId always follow the target's default symbol decoration scheme.
+ ExportedSymbol::NoDefId(..) => None,
+ // ThreadLocalShim always follow the target's default symbol decoration scheme.
+ ExportedSymbol::ThreadLocalShim(..) => None,
+ };
+
+ instance
+ .map(|i| {
+ tcx.fn_abi_of_instance(
+ ty::TypingEnv::fully_monomorphized().as_query_input((i, ty::List::empty())),
+ )
+ .unwrap_or_else(|_| bug!("fn_abi_of_instance({i:?}) failed"))
+ })
+ .map(|fnabi| (fnabi.conv, &fnabi.args[..]))
+ // FIXME(workingjubilee): why don't we know the convention here?
+ .unwrap_or((Conv::Rust, &[]))
+}
+
/// This is the symbol name of the given instance as seen by the linker.
///
/// On 32-bit Windows symbols are decorated according to their calling conventions.
@@ -559,8 +596,6 @@ pub(crate) fn linking_symbol_name_for_instance_in_crate<'tcx>(
symbol: ExportedSymbol<'tcx>,
instantiating_crate: CrateNum,
) -> String {
- use rustc_target::callconv::Conv;
-
let mut undecorated = symbol_name_for_instance_in_crate(tcx, symbol, instantiating_crate);
// thread local will not be a function call,
@@ -584,35 +619,7 @@ pub(crate) fn linking_symbol_name_for_instance_in_crate<'tcx>(
_ => return undecorated,
};
- let instance = match symbol {
- ExportedSymbol::NonGeneric(def_id) | ExportedSymbol::Generic(def_id, _)
- if tcx.is_static(def_id) =>
- {
- None
- }
- ExportedSymbol::NonGeneric(def_id) => Some(Instance::mono(tcx, def_id)),
- ExportedSymbol::Generic(def_id, args) => Some(Instance::new(def_id, args)),
- // DropGlue always use the Rust calling convention and thus follow the target's default
- // symbol decoration scheme.
- ExportedSymbol::DropGlue(..) => None,
- // AsyncDropGlueCtorShim always use the Rust calling convention and thus follow the
- // target's default symbol decoration scheme.
- ExportedSymbol::AsyncDropGlueCtorShim(..) => None,
- // NoDefId always follow the target's default symbol decoration scheme.
- ExportedSymbol::NoDefId(..) => None,
- // ThreadLocalShim always follow the target's default symbol decoration scheme.
- ExportedSymbol::ThreadLocalShim(..) => None,
- };
-
- let (conv, args) = instance
- .map(|i| {
- tcx.fn_abi_of_instance(
- ty::TypingEnv::fully_monomorphized().as_query_input((i, ty::List::empty())),
- )
- .unwrap_or_else(|_| bug!("fn_abi_of_instance({i:?}) failed"))
- })
- .map(|fnabi| (fnabi.conv, &fnabi.args[..]))
- .unwrap_or((Conv::Rust, &[]));
+ let (conv, args) = calling_convention_for_symbol(tcx, symbol);
// Decorate symbols with prefixes, suffixes and total number of bytes of arguments.
// Reference: https://docs.microsoft.com/en-us/cpp/build/reference/decorated-names?view=msvc-170
@@ -644,6 +651,27 @@ pub(crate) fn exporting_symbol_name_for_instance_in_crate<'tcx>(
maybe_emutls_symbol_name(tcx, symbol, &undecorated).unwrap_or(undecorated)
}
+/// On amdhsa, `gpu-kernel` functions have an associated metadata object with a `.kd` suffix.
+/// Add it to the symbols list for all kernel functions, so that it is exported in the linked
+/// object.
+pub(crate) fn extend_exported_symbols<'tcx>(
+ symbols: &mut Vec,
+ tcx: TyCtxt<'tcx>,
+ symbol: ExportedSymbol<'tcx>,
+ instantiating_crate: CrateNum,
+) {
+ let (conv, _) = calling_convention_for_symbol(tcx, symbol);
+
+ if conv != Conv::GpuKernel || tcx.sess.target.os != "amdhsa" {
+ return;
+ }
+
+ let undecorated = symbol_name_for_instance_in_crate(tcx, symbol, instantiating_crate);
+
+ // Add the symbol for the kernel descriptor (with .kd suffix)
+ symbols.push(format!("{undecorated}.kd"));
+}
+
fn maybe_emutls_symbol_name<'tcx>(
tcx: TyCtxt<'tcx>,
symbol: ExportedSymbol<'tcx>,
diff --git a/tests/run-make/amdgpu-kd/foo.rs b/tests/run-make/amdgpu-kd/foo.rs
new file mode 100644
index 000000000000..a0d803ab8137
--- /dev/null
+++ b/tests/run-make/amdgpu-kd/foo.rs
@@ -0,0 +1,11 @@
+#![allow(internal_features)]
+#![feature(no_core, lang_items, abi_gpu_kernel)]
+#![no_core]
+#![no_std]
+
+// This is needed because of #![no_core]:
+#[lang = "sized"]
+trait Sized {}
+
+#[no_mangle]
+extern "gpu-kernel" fn kernel() {}
diff --git a/tests/run-make/amdgpu-kd/rmake.rs b/tests/run-make/amdgpu-kd/rmake.rs
new file mode 100644
index 000000000000..a787fa1da93a
--- /dev/null
+++ b/tests/run-make/amdgpu-kd/rmake.rs
@@ -0,0 +1,20 @@
+// On the amdhsa OS, the host runtime (HIP or HSA) expects a kernel descriptor object for each
+// kernel in the ELF file. The amdgpu LLVM backend generates the object. It is created as a symbol
+// with the name of the kernel plus a .kd suffix.
+// Check that the produced object has the .kd symbol exported.
+
+//@ needs-llvm-components: amdgpu
+//@ needs-rust-lld
+
+use run_make_support::{llvm_readobj, rustc};
+
+fn main() {
+ rustc()
+ .crate_name("foo")
+ .target("amdgcn-amd-amdhsa")
+ .arg("-Ctarget-cpu=gfx900")
+ .crate_type("cdylib")
+ .input("foo.rs")
+ .run();
+ llvm_readobj().input("foo.elf").symbols().run().assert_stdout_contains("kernel.kd");
+}
From c6ddd335a833ebced8de60724b2ff94323a9c5ac Mon Sep 17 00:00:00 2001
From: Michael Goulet
Date: Thu, 6 Feb 2025 20:08:29 +0000
Subject: [PATCH 12/59] Implement and use BikeshedGuaranteedNoDrop for
union/unsafe field validity
---
example/mini_core.rs | 3 +++
1 file changed, 3 insertions(+)
diff --git a/example/mini_core.rs b/example/mini_core.rs
index a0a381638c06..79820232496a 100644
--- a/example/mini_core.rs
+++ b/example/mini_core.rs
@@ -57,6 +57,9 @@ impl LegacyReceiver for Box {}
#[lang = "copy"]
pub trait Copy {}
+#[lang = "bikeshed_guaranteed_no_drop"]
+pub trait BikeshedGuaranteedNoDrop {}
+
impl Copy for bool {}
impl Copy for u8 {}
impl Copy for u16 {}
From 26eeac1a1e9fe46ffd80dd0d3dafdd2c2a644306 Mon Sep 17 00:00:00 2001
From: Chris Denton
Date: Thu, 13 Feb 2025 10:32:59 +0000
Subject: [PATCH 13/59] Windows: Update generated bindings to 0.59
---
Cargo.lock | 15 +-
.../std/src/sys/pal/windows/c/bindings.txt | 5211 +++++++++--------
.../std/src/sys/pal/windows/c/windows_sys.rs | 351 +-
library/std/src/sys/pal/windows/fs.rs | 4 +-
src/tools/generate-windows-sys/Cargo.toml | 2 +-
src/tools/generate-windows-sys/src/main.rs | 3 +-
6 files changed, 2805 insertions(+), 2781 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index d31ef9c4b17e..38a861727a9d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -6195,16 +6195,11 @@ dependencies = [
[[package]]
name = "windows-bindgen"
-version = "0.58.0"
+version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91cd28d93c692351f3a6e5615567c56756e330bee1c99c6bdd57bfc5ab15f589"
+checksum = "9b7fb600834d7e868f6e5bb748a86101427330fafbf9485c331b9d5f562d54a5"
dependencies = [
- "proc-macro2",
"rayon",
- "serde",
- "serde_json",
- "syn 2.0.96",
- "windows-metadata",
]
[[package]]
@@ -6285,12 +6280,6 @@ dependencies = [
"syn 2.0.96",
]
-[[package]]
-name = "windows-metadata"
-version = "0.58.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e837f3c3012cfe9e7086302a93f441a7999439be1ad4c530d55d2f6d2921809"
-
[[package]]
name = "windows-result"
version = "0.1.2"
diff --git a/library/std/src/sys/pal/windows/c/bindings.txt b/library/std/src/sys/pal/windows/c/bindings.txt
index c06f274685c2..e2c216332796 100644
--- a/library/std/src/sys/pal/windows/c/bindings.txt
+++ b/library/std/src/sys/pal/windows/c/bindings.txt
@@ -1,2611 +1,2612 @@
--out windows_sys.rs
---config flatten sys
+--flat
+--sys
+--no-core
--filter
-!Windows.Win32.Foundation.INVALID_HANDLE_VALUE
-Windows.Wdk.Storage.FileSystem.FILE_COMPLETE_IF_OPLOCKED
-Windows.Wdk.Storage.FileSystem.FILE_CONTAINS_EXTENDED_CREATE_INFORMATION
-Windows.Wdk.Storage.FileSystem.FILE_CREATE
-Windows.Wdk.Storage.FileSystem.FILE_CREATE_TREE_CONNECTION
-Windows.Wdk.Storage.FileSystem.FILE_DELETE_ON_CLOSE
-Windows.Wdk.Storage.FileSystem.FILE_DIRECTORY_FILE
-Windows.Wdk.Storage.FileSystem.FILE_DISALLOW_EXCLUSIVE
+!INVALID_HANDLE_VALUE
+ABOVE_NORMAL_PRIORITY_CLASS
+accept
+AcquireSRWLockExclusive
+AcquireSRWLockShared
+ADDRESS_FAMILY
+ADDRINFOA
+AddVectoredExceptionHandler
+AF_INET
+AF_INET6
+AF_UNIX
+AF_UNSPEC
+ALL_PROCESSOR_GROUPS
+ARM64_NT_NEON128
+BELOW_NORMAL_PRIORITY_CLASS
+bind
+BOOL
+BY_HANDLE_FILE_INFORMATION
+CALLBACK_CHUNK_FINISHED
+CALLBACK_STREAM_SWITCH
+CancelIo
+CloseHandle
+closesocket
+COMPARESTRING_RESULT
+CompareStringOrdinal
+connect
+CONSOLE_MODE
+CONSOLE_READCONSOLE_CONTROL
+CONTEXT
+CopyFileExW
+CP_UTF8
+CREATE_ALWAYS
+CREATE_BREAKAWAY_FROM_JOB
+CREATE_DEFAULT_ERROR_MODE
+CREATE_FORCEDOS
+CREATE_IGNORE_SYSTEM_DEFAULT
+CREATE_NEW
+CREATE_NEW_CONSOLE
+CREATE_NEW_PROCESS_GROUP
+CREATE_NO_WINDOW
+CREATE_PRESERVE_CODE_AUTHZ_LEVEL
+CREATE_PROTECTED_PROCESS
+CREATE_SECURE_PROCESS
+CREATE_SEPARATE_WOW_VDM
+CREATE_SHARED_WOW_VDM
+CREATE_SUSPENDED
+CREATE_UNICODE_ENVIRONMENT
+CREATE_WAITABLE_TIMER_HIGH_RESOLUTION
+CREATE_WAITABLE_TIMER_MANUAL_RESET
+CreateDirectoryW
+CreateEventW
+CreateFileW
+CreateHardLinkW
+CreateNamedPipeW
+CreatePipe
+CreateProcessW
+CreateSymbolicLinkW
+CreateThread
+CreateWaitableTimerExW
+CSTR_EQUAL
+CSTR_GREATER_THAN
+CSTR_LESS_THAN
+DEBUG_ONLY_THIS_PROCESS
+DEBUG_PROCESS
+DELETE
+DeleteFileW
+DeleteProcThreadAttributeList
+DETACHED_PROCESS
+DeviceIoControl
+DISABLE_NEWLINE_AUTO_RETURN
+DLL_PROCESS_DETACH
+DLL_THREAD_DETACH
+DNS_ERROR_ADDRESS_REQUIRED
+DNS_ERROR_ALIAS_LOOP
+DNS_ERROR_AUTOZONE_ALREADY_EXISTS
+DNS_ERROR_AXFR
+DNS_ERROR_BACKGROUND_LOADING
+DNS_ERROR_BAD_KEYMASTER
+DNS_ERROR_BAD_PACKET
+DNS_ERROR_CANNOT_FIND_ROOT_HINTS
+DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS
+DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST
+DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED
+DNS_ERROR_CNAME_COLLISION
+DNS_ERROR_CNAME_LOOP
+DNS_ERROR_DATAFILE_OPEN_FAILURE
+DNS_ERROR_DATAFILE_PARSING
+DNS_ERROR_DEFAULT_SCOPE
+DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE
+DNS_ERROR_DEFAULT_ZONESCOPE
+DNS_ERROR_DELEGATION_REQUIRED
+DNS_ERROR_DNAME_COLLISION
+DNS_ERROR_DNSSEC_IS_DISABLED
+DNS_ERROR_DP_ALREADY_ENLISTED
+DNS_ERROR_DP_ALREADY_EXISTS
+DNS_ERROR_DP_DOES_NOT_EXIST
+DNS_ERROR_DP_FSMO_ERROR
+DNS_ERROR_DP_NOT_AVAILABLE
+DNS_ERROR_DP_NOT_ENLISTED
+DNS_ERROR_DS_UNAVAILABLE
+DNS_ERROR_DS_ZONE_ALREADY_EXISTS
+DNS_ERROR_DWORD_VALUE_TOO_LARGE
+DNS_ERROR_DWORD_VALUE_TOO_SMALL
+DNS_ERROR_FILE_WRITEBACK_FAILED
+DNS_ERROR_FORWARDER_ALREADY_EXISTS
+DNS_ERROR_INCONSISTENT_ROOT_HINTS
+DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME
+DNS_ERROR_INVALID_CLIENT_SUBNET_NAME
+DNS_ERROR_INVALID_DATA
+DNS_ERROR_INVALID_DATAFILE_NAME
+DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET
+DNS_ERROR_INVALID_IP_ADDRESS
+DNS_ERROR_INVALID_KEY_SIZE
+DNS_ERROR_INVALID_NAME
+DNS_ERROR_INVALID_NAME_CHAR
+DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT
+DNS_ERROR_INVALID_POLICY_TABLE
+DNS_ERROR_INVALID_PROPERTY
+DNS_ERROR_INVALID_ROLLOVER_PERIOD
+DNS_ERROR_INVALID_SCOPE_NAME
+DNS_ERROR_INVALID_SCOPE_OPERATION
+DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD
+DNS_ERROR_INVALID_TYPE
+DNS_ERROR_INVALID_XML
+DNS_ERROR_INVALID_ZONE_OPERATION
+DNS_ERROR_INVALID_ZONE_TYPE
+DNS_ERROR_INVALID_ZONESCOPE_NAME
+DNS_ERROR_KEYMASTER_REQUIRED
+DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION
+DNS_ERROR_KSP_NOT_ACCESSIBLE
+DNS_ERROR_LOAD_ZONESCOPE_FAILED
+DNS_ERROR_NAME_DOES_NOT_EXIST
+DNS_ERROR_NAME_NOT_IN_ZONE
+DNS_ERROR_NBSTAT_INIT_FAILED
+DNS_ERROR_NEED_SECONDARY_ADDRESSES
+DNS_ERROR_NEED_WINS_SERVERS
+DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE
+DNS_ERROR_NO_CREATE_CACHE_DATA
+DNS_ERROR_NO_DNS_SERVERS
+DNS_ERROR_NO_MEMORY
+DNS_ERROR_NO_PACKET
+DNS_ERROR_NO_TCPIP
+DNS_ERROR_NO_VALID_TRUST_ANCHORS
+DNS_ERROR_NO_ZONE_INFO
+DNS_ERROR_NODE_CREATION_FAILED
+DNS_ERROR_NODE_IS_CNAME
+DNS_ERROR_NODE_IS_DNAME
+DNS_ERROR_NON_RFC_NAME
+DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD
+DNS_ERROR_NOT_ALLOWED_ON_RODC
+DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER
+DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE
+DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE
+DNS_ERROR_NOT_ALLOWED_ON_ZSK
+DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION
+DNS_ERROR_NOT_ALLOWED_UNDER_DNAME
+DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES
+DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS
+DNS_ERROR_NOT_UNIQUE
+DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1
+DNS_ERROR_NSEC3_NAME_COLLISION
+DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1
+DNS_ERROR_NUMERIC_NAME
+DNS_ERROR_POLICY_ALREADY_EXISTS
+DNS_ERROR_POLICY_DOES_NOT_EXIST
+DNS_ERROR_POLICY_INVALID_CRITERIA
+DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET
+DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN
+DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE
+DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL
+DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE
+DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY
+DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL
+DNS_ERROR_POLICY_INVALID_NAME
+DNS_ERROR_POLICY_INVALID_SETTINGS
+DNS_ERROR_POLICY_INVALID_WEIGHT
+DNS_ERROR_POLICY_LOCKED
+DNS_ERROR_POLICY_MISSING_CRITERIA
+DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID
+DNS_ERROR_POLICY_SCOPE_MISSING
+DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED
+DNS_ERROR_PRIMARY_REQUIRES_DATAFILE
+DNS_ERROR_RCODE
+DNS_ERROR_RCODE_BADKEY
+DNS_ERROR_RCODE_BADSIG
+DNS_ERROR_RCODE_BADTIME
+DNS_ERROR_RCODE_FORMAT_ERROR
+DNS_ERROR_RCODE_NAME_ERROR
+DNS_ERROR_RCODE_NOT_IMPLEMENTED
+DNS_ERROR_RCODE_NOTAUTH
+DNS_ERROR_RCODE_NOTZONE
+DNS_ERROR_RCODE_NXRRSET
+DNS_ERROR_RCODE_REFUSED
+DNS_ERROR_RCODE_SERVER_FAILURE
+DNS_ERROR_RCODE_YXDOMAIN
+DNS_ERROR_RCODE_YXRRSET
+DNS_ERROR_RECORD_ALREADY_EXISTS
+DNS_ERROR_RECORD_DOES_NOT_EXIST
+DNS_ERROR_RECORD_FORMAT
+DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT
+DNS_ERROR_RECORD_TIMED_OUT
+DNS_ERROR_ROLLOVER_ALREADY_QUEUED
+DNS_ERROR_ROLLOVER_IN_PROGRESS
+DNS_ERROR_ROLLOVER_NOT_POKEABLE
+DNS_ERROR_RRL_INVALID_IPV4_PREFIX
+DNS_ERROR_RRL_INVALID_IPV6_PREFIX
+DNS_ERROR_RRL_INVALID_LEAK_RATE
+DNS_ERROR_RRL_INVALID_TC_RATE
+DNS_ERROR_RRL_INVALID_WINDOW_SIZE
+DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE
+DNS_ERROR_RRL_NOT_ENABLED
+DNS_ERROR_SCOPE_ALREADY_EXISTS
+DNS_ERROR_SCOPE_DOES_NOT_EXIST
+DNS_ERROR_SCOPE_LOCKED
+DNS_ERROR_SECONDARY_DATA
+DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP
+DNS_ERROR_SERVERSCOPE_IS_REFERENCED
+DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE
+DNS_ERROR_SOA_DELETE_INVALID
+DNS_ERROR_STANDBY_KEY_NOT_PRESENT
+DNS_ERROR_SUBNET_ALREADY_EXISTS
+DNS_ERROR_SUBNET_DOES_NOT_EXIST
+DNS_ERROR_TOO_MANY_SKDS
+DNS_ERROR_TRY_AGAIN_LATER
+DNS_ERROR_UNEXPECTED_CNG_ERROR
+DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR
+DNS_ERROR_UNKNOWN_RECORD_TYPE
+DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION
+DNS_ERROR_UNSECURE_PACKET
+DNS_ERROR_UNSUPPORTED_ALGORITHM
+DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS
+DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST
+DNS_ERROR_VIRTUALIZATION_TREE_LOCKED
+DNS_ERROR_WINS_INIT_FAILED
+DNS_ERROR_ZONE_ALREADY_EXISTS
+DNS_ERROR_ZONE_CONFIGURATION_ERROR
+DNS_ERROR_ZONE_CREATION_FAILED
+DNS_ERROR_ZONE_DOES_NOT_EXIST
+DNS_ERROR_ZONE_HAS_NO_NS_RECORDS
+DNS_ERROR_ZONE_HAS_NO_SOA_RECORD
+DNS_ERROR_ZONE_IS_SHUTDOWN
+DNS_ERROR_ZONE_LOCKED
+DNS_ERROR_ZONE_LOCKED_FOR_SIGNING
+DNS_ERROR_ZONE_NOT_SECONDARY
+DNS_ERROR_ZONE_REQUIRES_MASTER_IP
+DNS_ERROR_ZONESCOPE_ALREADY_EXISTS
+DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST
+DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED
+DNS_ERROR_ZONESCOPE_IS_REFERENCED
+DUPLICATE_CLOSE_SOURCE
+DUPLICATE_HANDLE_OPTIONS
+DUPLICATE_SAME_ACCESS
+DuplicateHandle
+E_NOTIMPL
+ENABLE_AUTO_POSITION
+ENABLE_ECHO_INPUT
+ENABLE_EXTENDED_FLAGS
+ENABLE_INSERT_MODE
+ENABLE_LINE_INPUT
+ENABLE_LVB_GRID_WORLDWIDE
+ENABLE_MOUSE_INPUT
+ENABLE_PROCESSED_INPUT
+ENABLE_PROCESSED_OUTPUT
+ENABLE_QUICK_EDIT_MODE
+ENABLE_VIRTUAL_TERMINAL_INPUT
+ENABLE_VIRTUAL_TERMINAL_PROCESSING
+ENABLE_WINDOW_INPUT
+ENABLE_WRAP_AT_EOL_OUTPUT
+ERROR_ABANDON_HIBERFILE
+ERROR_ABANDONED_WAIT_0
+ERROR_ABANDONED_WAIT_63
+ERROR_ABIOS_ERROR
+ERROR_ACCESS_AUDIT_BY_POLICY
+ERROR_ACCESS_DENIED
+ERROR_ACCESS_DENIED_APPDATA
+ERROR_ACCESS_DISABLED_BY_POLICY
+ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY
+ERROR_ACCESS_DISABLED_WEBBLADE
+ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER
+ERROR_ACCOUNT_DISABLED
+ERROR_ACCOUNT_EXPIRED
+ERROR_ACCOUNT_LOCKED_OUT
+ERROR_ACCOUNT_RESTRICTION
+ERROR_ACPI_ERROR
+ERROR_ACTIVE_CONNECTIONS
+ERROR_ADAP_HDW_ERR
+ERROR_ADDRESS_ALREADY_ASSOCIATED
+ERROR_ADDRESS_NOT_ASSOCIATED
+ERROR_ALERTED
+ERROR_ALIAS_EXISTS
+ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED
+ERROR_ALLOCATE_BUCKET
+ERROR_ALLOTTED_SPACE_EXCEEDED
+ERROR_ALREADY_ASSIGNED
+ERROR_ALREADY_EXISTS
+ERROR_ALREADY_FIBER
+ERROR_ALREADY_HAS_STREAM_ID
+ERROR_ALREADY_INITIALIZED
+ERROR_ALREADY_REGISTERED
+ERROR_ALREADY_RUNNING_LKG
+ERROR_ALREADY_THREAD
+ERROR_ALREADY_WAITING
+ERROR_ALREADY_WIN32
+ERROR_API_UNAVAILABLE
+ERROR_APP_HANG
+ERROR_APP_INIT_FAILURE
+ERROR_APP_WRONG_OS
+ERROR_APPCONTAINER_REQUIRED
+ERROR_APPEXEC_APP_COMPAT_BLOCK
+ERROR_APPEXEC_CALLER_WAIT_TIMEOUT
+ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_LICENSING
+ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_RESOURCES
+ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_TERMINATION
+ERROR_APPEXEC_CONDITION_NOT_SATISFIED
+ERROR_APPEXEC_HANDLE_INVALIDATED
+ERROR_APPEXEC_HOST_ID_MISMATCH
+ERROR_APPEXEC_INVALID_HOST_GENERATION
+ERROR_APPEXEC_INVALID_HOST_STATE
+ERROR_APPEXEC_NO_DONOR
+ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION
+ERROR_APPEXEC_UNKNOWN_USER
+ERROR_APPHELP_BLOCK
+ERROR_APPX_FILE_NOT_ENCRYPTED
+ERROR_ARBITRATION_UNHANDLED
+ERROR_ARENA_TRASHED
+ERROR_ARITHMETIC_OVERFLOW
+ERROR_ASSERTION_FAILURE
+ERROR_ATOMIC_LOCKS_NOT_SUPPORTED
+ERROR_AUDIT_FAILED
+ERROR_AUTHENTICATION_FIREWALL_FAILED
+ERROR_AUTHIP_FAILURE
+ERROR_AUTODATASEG_EXCEEDS_64k
+ERROR_BACKUP_CONTROLLER
+ERROR_BAD_ACCESSOR_FLAGS
+ERROR_BAD_ARGUMENTS
+ERROR_BAD_COMMAND
+ERROR_BAD_COMPRESSION_BUFFER
+ERROR_BAD_CONFIGURATION
+ERROR_BAD_CURRENT_DIRECTORY
+ERROR_BAD_DESCRIPTOR_FORMAT
+ERROR_BAD_DEV_TYPE
+ERROR_BAD_DEVICE
+ERROR_BAD_DEVICE_PATH
+ERROR_BAD_DLL_ENTRYPOINT
+ERROR_BAD_DRIVER_LEVEL
+ERROR_BAD_ENVIRONMENT
+ERROR_BAD_EXE_FORMAT
+ERROR_BAD_FILE_TYPE
+ERROR_BAD_FORMAT
+ERROR_BAD_FUNCTION_TABLE
+ERROR_BAD_IMPERSONATION_LEVEL
+ERROR_BAD_INHERITANCE_ACL
+ERROR_BAD_LENGTH
+ERROR_BAD_LOGON_SESSION_STATE
+ERROR_BAD_MCFG_TABLE
+ERROR_BAD_NET_NAME
+ERROR_BAD_NET_RESP
+ERROR_BAD_NETPATH
+ERROR_BAD_PATHNAME
+ERROR_BAD_PIPE
+ERROR_BAD_PROFILE
+ERROR_BAD_PROVIDER
+ERROR_BAD_QUERY_SYNTAX
+ERROR_BAD_RECOVERY_POLICY
+ERROR_BAD_REM_ADAP
+ERROR_BAD_SERVICE_ENTRYPOINT
+ERROR_BAD_STACK
+ERROR_BAD_THREADID_ADDR
+ERROR_BAD_TOKEN_TYPE
+ERROR_BAD_UNIT
+ERROR_BAD_USER_PROFILE
+ERROR_BAD_USERNAME
+ERROR_BAD_VALIDATION_CLASS
+ERROR_BADDB
+ERROR_BADKEY
+ERROR_BADSTARTPOSITION
+ERROR_BEGINNING_OF_MEDIA
+ERROR_BEYOND_VDL
+ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT
+ERROR_BLOCK_SHARED
+ERROR_BLOCK_SOURCE_WEAK_REFERENCE_INVALID
+ERROR_BLOCK_TARGET_WEAK_REFERENCE_INVALID
+ERROR_BLOCK_TOO_MANY_REFERENCES
+ERROR_BLOCK_WEAK_REFERENCE_INVALID
+ERROR_BLOCKED_BY_PARENTAL_CONTROLS
+ERROR_BOOT_ALREADY_ACCEPTED
+ERROR_BROKEN_PIPE
+ERROR_BUFFER_ALL_ZEROS
+ERROR_BUFFER_OVERFLOW
+ERROR_BUS_RESET
+ERROR_BUSY
+ERROR_BUSY_DRIVE
+ERROR_BYPASSIO_FLT_NOT_SUPPORTED
+ERROR_CACHE_PAGE_LOCKED
+ERROR_CALL_NOT_IMPLEMENTED
+ERROR_CALLBACK_INVOKE_INLINE
+ERROR_CALLBACK_POP_STACK
+ERROR_CALLBACK_SUPPLIED_INVALID_DATA
+ERROR_CAN_NOT_COMPLETE
+ERROR_CANCEL_VIOLATION
+ERROR_CANCELLED
+ERROR_CANNOT_BREAK_OPLOCK
+ERROR_CANNOT_COPY
+ERROR_CANNOT_DETECT_DRIVER_FAILURE
+ERROR_CANNOT_DETECT_PROCESS_ABORT
+ERROR_CANNOT_FIND_WND_CLASS
+ERROR_CANNOT_GRANT_REQUESTED_OPLOCK
+ERROR_CANNOT_IMPERSONATE
+ERROR_CANNOT_LOAD_REGISTRY_FILE
+ERROR_CANNOT_MAKE
+ERROR_CANNOT_OPEN_PROFILE
+ERROR_CANT_ACCESS_DOMAIN_INFO
+ERROR_CANT_ACCESS_FILE
+ERROR_CANT_CLEAR_ENCRYPTION_FLAG
+ERROR_CANT_DISABLE_MANDATORY
+ERROR_CANT_ENABLE_DENY_ONLY
+ERROR_CANT_OPEN_ANONYMOUS
+ERROR_CANT_RESOLVE_FILENAME
+ERROR_CANT_TERMINATE_SELF
+ERROR_CANT_WAIT
+ERROR_CANTFETCHBACKWARDS
+ERROR_CANTOPEN
+ERROR_CANTREAD
+ERROR_CANTSCROLLBACKWARDS
+ERROR_CANTWRITE
+ERROR_CAPAUTHZ_CHANGE_TYPE
+ERROR_CAPAUTHZ_DB_CORRUPTED
+ERROR_CAPAUTHZ_NO_POLICY
+ERROR_CAPAUTHZ_NOT_AUTHORIZED
+ERROR_CAPAUTHZ_NOT_DEVUNLOCKED
+ERROR_CAPAUTHZ_NOT_PROVISIONED
+ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED
+ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG
+ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY
+ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH
+ERROR_CAPAUTHZ_SCCD_PARSE_ERROR
+ERROR_CARDBUS_NOT_SUPPORTED
+ERROR_CASE_DIFFERING_NAMES_IN_DIR
+ERROR_CASE_SENSITIVE_PATH
+ERROR_CERTIFICATE_VALIDATION_PREFERENCE_CONFLICT
+ERROR_CHECKING_FILE_SYSTEM
+ERROR_CHECKOUT_REQUIRED
+ERROR_CHILD_MUST_BE_VOLATILE
+ERROR_CHILD_NOT_COMPLETE
+ERROR_CHILD_PROCESS_BLOCKED
+ERROR_CHILD_WINDOW_MENU
+ERROR_CIMFS_IMAGE_CORRUPT
+ERROR_CIMFS_IMAGE_VERSION_NOT_SUPPORTED
+ERROR_CIRCULAR_DEPENDENCY
+ERROR_CLASS_ALREADY_EXISTS
+ERROR_CLASS_DOES_NOT_EXIST
+ERROR_CLASS_HAS_WINDOWS
+ERROR_CLIENT_SERVER_PARAMETERS_INVALID
+ERROR_CLIPBOARD_NOT_OPEN
+ERROR_CLOUD_FILE_ACCESS_DENIED
+ERROR_CLOUD_FILE_ALREADY_CONNECTED
+ERROR_CLOUD_FILE_AUTHENTICATION_FAILED
+ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY
+ERROR_CLOUD_FILE_DEHYDRATION_DISALLOWED
+ERROR_CLOUD_FILE_IN_USE
+ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS
+ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES
+ERROR_CLOUD_FILE_INVALID_REQUEST
+ERROR_CLOUD_FILE_METADATA_CORRUPT
+ERROR_CLOUD_FILE_METADATA_TOO_LARGE
+ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE
+ERROR_CLOUD_FILE_NOT_IN_SYNC
+ERROR_CLOUD_FILE_NOT_SUPPORTED
+ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT
+ERROR_CLOUD_FILE_PINNED
+ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH
+ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE
+ERROR_CLOUD_FILE_PROPERTY_CORRUPT
+ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT
+ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED
+ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING
+ERROR_CLOUD_FILE_PROVIDER_TERMINATED
+ERROR_CLOUD_FILE_READ_ONLY_VOLUME
+ERROR_CLOUD_FILE_REQUEST_ABORTED
+ERROR_CLOUD_FILE_REQUEST_CANCELED
+ERROR_CLOUD_FILE_REQUEST_TIMEOUT
+ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT
+ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS
+ERROR_CLOUD_FILE_UNSUCCESSFUL
+ERROR_CLOUD_FILE_US_MESSAGE_TIMEOUT
+ERROR_CLOUD_FILE_VALIDATION_FAILED
+ERROR_COMMITMENT_LIMIT
+ERROR_COMMITMENT_MINIMUM
+ERROR_COMPRESSED_FILE_NOT_SUPPORTED
+ERROR_COMPRESSION_DISABLED
+ERROR_COMPRESSION_NOT_BENEFICIAL
+ERROR_CONNECTED_OTHER_PASSWORD
+ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT
+ERROR_CONNECTION_ABORTED
+ERROR_CONNECTION_ACTIVE
+ERROR_CONNECTION_COUNT_LIMIT
+ERROR_CONNECTION_INVALID
+ERROR_CONNECTION_REFUSED
+ERROR_CONNECTION_UNAVAIL
+ERROR_CONTAINER_ASSIGNED
+ERROR_CONTENT_BLOCKED
+ERROR_CONTEXT_EXPIRED
+ERROR_CONTINUE
+ERROR_CONTROL_C_EXIT
+ERROR_CONTROL_ID_NOT_FOUND
+ERROR_CONVERT_TO_LARGE
+ERROR_CORRUPT_LOG_CLEARED
+ERROR_CORRUPT_LOG_CORRUPTED
+ERROR_CORRUPT_LOG_DELETED_FULL
+ERROR_CORRUPT_LOG_OVERFULL
+ERROR_CORRUPT_LOG_UNAVAILABLE
+ERROR_CORRUPT_SYSTEM_FILE
+ERROR_COULD_NOT_INTERPRET
+ERROR_COUNTER_TIMEOUT
+ERROR_CPU_SET_INVALID
+ERROR_CRASH_DUMP
+ERROR_CRC
+ERROR_CREATE_FAILED
+ERROR_CROSS_PARTITION_VIOLATION
+ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE
+ERROR_CS_ENCRYPTION_FILE_NOT_CSE
+ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE
+ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE
+ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER
+ERROR_CSCSHARE_OFFLINE
+ERROR_CTX_CLIENT_QUERY_TIMEOUT
+ERROR_CTX_MODEM_RESPONSE_TIMEOUT
+ERROR_CURRENT_DIRECTORY
+ERROR_CURRENT_DOMAIN_NOT_ALLOWED
+ERROR_DATA_CHECKSUM_ERROR
+ERROR_DATA_NOT_ACCEPTED
+ERROR_DATABASE_DOES_NOT_EXIST
+ERROR_DATATYPE_MISMATCH
+ERROR_DAX_MAPPING_EXISTS
+ERROR_DBG_COMMAND_EXCEPTION
+ERROR_DBG_CONTINUE
+ERROR_DBG_CONTROL_BREAK
+ERROR_DBG_CONTROL_C
+ERROR_DBG_EXCEPTION_HANDLED
+ERROR_DBG_EXCEPTION_NOT_HANDLED
+ERROR_DBG_PRINTEXCEPTION_C
+ERROR_DBG_REPLY_LATER
+ERROR_DBG_RIPEXCEPTION
+ERROR_DBG_TERMINATE_PROCESS
+ERROR_DBG_TERMINATE_THREAD
+ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE
+ERROR_DC_NOT_FOUND
+ERROR_DDE_FAIL
+ERROR_DEBUG_ATTACH_FAILED
+ERROR_DEBUGGER_INACTIVE
+ERROR_DECRYPTION_FAILED
+ERROR_DELAY_LOAD_FAILED
+ERROR_DELETE_PENDING
+ERROR_DEPENDENT_SERVICES_RUNNING
+ERROR_DESTINATION_ELEMENT_FULL
+ERROR_DESTROY_OBJECT_OF_OTHER_THREAD
+ERROR_DEV_NOT_EXIST
+ERROR_DEVICE_ALREADY_ATTACHED
+ERROR_DEVICE_ALREADY_REMEMBERED
+ERROR_DEVICE_DOOR_OPEN
+ERROR_DEVICE_ENUMERATION_ERROR
+ERROR_DEVICE_FEATURE_NOT_SUPPORTED
+ERROR_DEVICE_HARDWARE_ERROR
+ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL
+ERROR_DEVICE_IN_MAINTENANCE
+ERROR_DEVICE_IN_USE
+ERROR_DEVICE_NO_RESOURCES
+ERROR_DEVICE_NOT_CONNECTED
+ERROR_DEVICE_NOT_PARTITIONED
+ERROR_DEVICE_REINITIALIZATION_NEEDED
+ERROR_DEVICE_REMOVED
+ERROR_DEVICE_REQUIRES_CLEANING
+ERROR_DEVICE_RESET_REQUIRED
+ERROR_DEVICE_SUPPORT_IN_PROGRESS
+ERROR_DEVICE_UNREACHABLE
+ERROR_DHCP_ADDRESS_CONFLICT
+ERROR_DIFFERENT_SERVICE_ACCOUNT
+ERROR_DIR_EFS_DISALLOWED
+ERROR_DIR_NOT_EMPTY
+ERROR_DIR_NOT_ROOT
+ERROR_DIRECT_ACCESS_HANDLE
+ERROR_DIRECTORY
+ERROR_DIRECTORY_NOT_SUPPORTED
+ERROR_DISCARDED
+ERROR_DISK_CHANGE
+ERROR_DISK_CORRUPT
+ERROR_DISK_FULL
+ERROR_DISK_OPERATION_FAILED
+ERROR_DISK_QUOTA_EXCEEDED
+ERROR_DISK_RECALIBRATE_FAILED
+ERROR_DISK_REPAIR_DISABLED
+ERROR_DISK_REPAIR_REDIRECTED
+ERROR_DISK_REPAIR_UNSUCCESSFUL
+ERROR_DISK_RESET_FAILED
+ERROR_DISK_RESOURCES_EXHAUSTED
+ERROR_DISK_TOO_FRAGMENTED
+ERROR_DLL_INIT_FAILED
+ERROR_DLL_INIT_FAILED_LOGOFF
+ERROR_DLL_MIGHT_BE_INCOMPATIBLE
+ERROR_DLL_MIGHT_BE_INSECURE
+ERROR_DLL_NOT_FOUND
+ERROR_DLP_POLICY_DENIES_OPERATION
+ERROR_DLP_POLICY_SILENTLY_FAIL
+ERROR_DLP_POLICY_WARNS_AGAINST_OPERATION
+ERROR_DOMAIN_CONTROLLER_EXISTS
+ERROR_DOMAIN_CONTROLLER_NOT_FOUND
+ERROR_DOMAIN_CTRLR_CONFIG_ERROR
+ERROR_DOMAIN_EXISTS
+ERROR_DOMAIN_LIMIT_EXCEEDED
+ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION
+ERROR_DOMAIN_TRUST_INCONSISTENT
+ERROR_DOWNGRADE_DETECTED
+ERROR_DPL_NOT_SUPPORTED_FOR_USER
+ERROR_DRIVE_LOCKED
+ERROR_DRIVER_BLOCKED
+ERROR_DRIVER_CANCEL_TIMEOUT
+ERROR_DRIVER_DATABASE_ERROR
+ERROR_DRIVER_FAILED_PRIOR_UNLOAD
+ERROR_DRIVER_FAILED_SLEEP
+ERROR_DRIVER_PROCESS_TERMINATED
+ERROR_DRIVERS_LEAKING_LOCKED_PAGES
+ERROR_DS_ADD_REPLICA_INHIBITED
+ERROR_DS_ADMIN_LIMIT_EXCEEDED
+ERROR_DS_AFFECTS_MULTIPLE_DSAS
+ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER
+ERROR_DS_ALIAS_DEREF_PROBLEM
+ERROR_DS_ALIAS_POINTS_TO_ALIAS
+ERROR_DS_ALIAS_PROBLEM
+ERROR_DS_ALIASED_OBJ_MISSING
+ERROR_DS_ATT_ALREADY_EXISTS
+ERROR_DS_ATT_IS_NOT_ON_OBJ
+ERROR_DS_ATT_NOT_DEF_FOR_CLASS
+ERROR_DS_ATT_NOT_DEF_IN_SCHEMA
+ERROR_DS_ATT_SCHEMA_REQ_ID
+ERROR_DS_ATT_SCHEMA_REQ_SYNTAX
+ERROR_DS_ATT_VAL_ALREADY_EXISTS
+ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS
+ERROR_DS_ATTRIBUTE_OWNED_BY_SAM
+ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED
+ERROR_DS_AUDIT_FAILURE
+ERROR_DS_AUTH_METHOD_NOT_SUPPORTED
+ERROR_DS_AUTH_UNKNOWN
+ERROR_DS_AUTHORIZATION_FAILED
+ERROR_DS_AUX_CLS_TEST_FAIL
+ERROR_DS_BACKLINK_WITHOUT_LINK
+ERROR_DS_BAD_ATT_SCHEMA_SYNTAX
+ERROR_DS_BAD_HIERARCHY_FILE
+ERROR_DS_BAD_INSTANCE_TYPE
+ERROR_DS_BAD_NAME_SYNTAX
+ERROR_DS_BAD_RDN_ATT_ID_SYNTAX
+ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED
+ERROR_DS_BUSY
+ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD
+ERROR_DS_CANT_ADD_ATT_VALUES
+ERROR_DS_CANT_ADD_SYSTEM_ONLY
+ERROR_DS_CANT_ADD_TO_GC
+ERROR_DS_CANT_CACHE_ATT
+ERROR_DS_CANT_CACHE_CLASS
+ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC
+ERROR_DS_CANT_CREATE_UNDER_SCHEMA
+ERROR_DS_CANT_DEL_MASTER_CROSSREF
+ERROR_DS_CANT_DELETE
+ERROR_DS_CANT_DELETE_DSA_OBJ
+ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC
+ERROR_DS_CANT_DEREF_ALIAS
+ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN
+ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF
+ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN
+ERROR_DS_CANT_FIND_DSA_OBJ
+ERROR_DS_CANT_FIND_EXPECTED_NC
+ERROR_DS_CANT_FIND_NC_IN_CACHE
+ERROR_DS_CANT_MIX_MASTER_AND_REPS
+ERROR_DS_CANT_MOD_OBJ_CLASS
+ERROR_DS_CANT_MOD_PRIMARYGROUPID
+ERROR_DS_CANT_MOD_SYSTEM_ONLY
+ERROR_DS_CANT_MOVE_ACCOUNT_GROUP
+ERROR_DS_CANT_MOVE_APP_BASIC_GROUP
+ERROR_DS_CANT_MOVE_APP_QUERY_GROUP
+ERROR_DS_CANT_MOVE_DELETED_OBJECT
+ERROR_DS_CANT_MOVE_RESOURCE_GROUP
+ERROR_DS_CANT_ON_NON_LEAF
+ERROR_DS_CANT_ON_RDN
+ERROR_DS_CANT_REM_MISSING_ATT
+ERROR_DS_CANT_REM_MISSING_ATT_VAL
+ERROR_DS_CANT_REMOVE_ATT_CACHE
+ERROR_DS_CANT_REMOVE_CLASS_CACHE
+ERROR_DS_CANT_REPLACE_HIDDEN_REC
+ERROR_DS_CANT_RETRIEVE_ATTS
+ERROR_DS_CANT_RETRIEVE_CHILD
+ERROR_DS_CANT_RETRIEVE_DN
+ERROR_DS_CANT_RETRIEVE_INSTANCE
+ERROR_DS_CANT_RETRIEVE_SD
+ERROR_DS_CANT_START
+ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ
+ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS
+ERROR_DS_CHILDREN_EXIST
+ERROR_DS_CLASS_MUST_BE_CONCRETE
+ERROR_DS_CLASS_NOT_DSA
+ERROR_DS_CLIENT_LOOP
+ERROR_DS_CODE_INCONSISTENCY
+ERROR_DS_COMPARE_FALSE
+ERROR_DS_COMPARE_TRUE
+ERROR_DS_CONFIDENTIALITY_REQUIRED
+ERROR_DS_CONFIG_PARAM_MISSING
+ERROR_DS_CONSTRAINT_VIOLATION
+ERROR_DS_CONSTRUCTED_ATT_MOD
+ERROR_DS_CONTROL_NOT_FOUND
+ERROR_DS_COULDNT_CONTACT_FSMO
+ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE
+ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE
+ERROR_DS_COULDNT_UPDATE_SPNS
+ERROR_DS_COUNTING_AB_INDICES_FAILED
+ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE
+ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2
+ERROR_DS_CROSS_DOM_MOVE_ERROR
+ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD
+ERROR_DS_CROSS_NC_DN_RENAME
+ERROR_DS_CROSS_REF_BUSY
+ERROR_DS_CROSS_REF_EXISTS
+ERROR_DS_DATABASE_ERROR
+ERROR_DS_DECODING_ERROR
+ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED
+ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST
+ERROR_DS_DIFFERENT_REPL_EPOCHS
+ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER
+ERROR_DS_DISALLOWED_NC_REDIRECT
+ERROR_DS_DNS_LOOKUP_FAILURE
+ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST
+ERROR_DS_DOMAIN_RENAME_IN_PROGRESS
+ERROR_DS_DOMAIN_VERSION_TOO_HIGH
+ERROR_DS_DOMAIN_VERSION_TOO_LOW
+ERROR_DS_DRA_ABANDON_SYNC
+ERROR_DS_DRA_ACCESS_DENIED
+ERROR_DS_DRA_BAD_DN
+ERROR_DS_DRA_BAD_INSTANCE_TYPE
+ERROR_DS_DRA_BAD_NC
+ERROR_DS_DRA_BUSY
+ERROR_DS_DRA_CONNECTION_FAILED
+ERROR_DS_DRA_CORRUPT_UTD_VECTOR
+ERROR_DS_DRA_DB_ERROR
+ERROR_DS_DRA_DN_EXISTS
+ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT
+ERROR_DS_DRA_EXTN_CONNECTION_FAILED
+ERROR_DS_DRA_GENERIC
+ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET
+ERROR_DS_DRA_INCONSISTENT_DIT
+ERROR_DS_DRA_INTERNAL_ERROR
+ERROR_DS_DRA_INVALID_PARAMETER
+ERROR_DS_DRA_MAIL_PROBLEM
+ERROR_DS_DRA_MISSING_KRBTGT_SECRET
+ERROR_DS_DRA_MISSING_PARENT
+ERROR_DS_DRA_NAME_COLLISION
+ERROR_DS_DRA_NO_REPLICA
+ERROR_DS_DRA_NOT_SUPPORTED
+ERROR_DS_DRA_OBJ_IS_REP_SOURCE
+ERROR_DS_DRA_OBJ_NC_MISMATCH
+ERROR_DS_DRA_OUT_OF_MEM
+ERROR_DS_DRA_OUT_SCHEDULE_WINDOW
+ERROR_DS_DRA_PREEMPTED
+ERROR_DS_DRA_RECYCLED_TARGET
+ERROR_DS_DRA_REF_ALREADY_EXISTS
+ERROR_DS_DRA_REF_NOT_FOUND
+ERROR_DS_DRA_REPL_PENDING
+ERROR_DS_DRA_RPC_CANCELLED
+ERROR_DS_DRA_SCHEMA_CONFLICT
+ERROR_DS_DRA_SCHEMA_INFO_SHIP
+ERROR_DS_DRA_SCHEMA_MISMATCH
+ERROR_DS_DRA_SECRETS_DENIED
+ERROR_DS_DRA_SHUTDOWN
+ERROR_DS_DRA_SINK_DISABLED
+ERROR_DS_DRA_SOURCE_DISABLED
+ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA
+ERROR_DS_DRA_SOURCE_REINSTALLED
+ERROR_DS_DRS_EXTENSIONS_CHANGED
+ERROR_DS_DS_REQUIRED
+ERROR_DS_DSA_MUST_BE_INT_MASTER
+ERROR_DS_DST_DOMAIN_NOT_NATIVE
+ERROR_DS_DST_NC_MISMATCH
+ERROR_DS_DUP_LDAP_DISPLAY_NAME
+ERROR_DS_DUP_LINK_ID
+ERROR_DS_DUP_MAPI_ID
+ERROR_DS_DUP_MSDS_INTID
+ERROR_DS_DUP_OID
+ERROR_DS_DUP_RDN
+ERROR_DS_DUP_SCHEMA_ID_GUID
+ERROR_DS_DUPLICATE_ID_FOUND
+ERROR_DS_ENCODING_ERROR
+ERROR_DS_EPOCH_MISMATCH
+ERROR_DS_EXISTING_AD_CHILD_NC
+ERROR_DS_EXISTS_IN_AUX_CLS
+ERROR_DS_EXISTS_IN_MAY_HAVE
+ERROR_DS_EXISTS_IN_MUST_HAVE
+ERROR_DS_EXISTS_IN_POSS_SUP
+ERROR_DS_EXISTS_IN_RDNATTID
+ERROR_DS_EXISTS_IN_SUB_CLS
+ERROR_DS_FILTER_UNKNOWN
+ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS
+ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST
+ERROR_DS_FOREST_VERSION_TOO_HIGH
+ERROR_DS_FOREST_VERSION_TOO_LOW
+ERROR_DS_GC_NOT_AVAILABLE
+ERROR_DS_GC_REQUIRED
+ERROR_DS_GCVERIFY_ERROR
+ERROR_DS_GENERIC_ERROR
+ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER
+ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER
+ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER
+ERROR_DS_GOVERNSID_MISSING
+ERROR_DS_GROUP_CONVERSION_ERROR
+ERROR_DS_HAVE_PRIMARY_MEMBERS
+ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED
+ERROR_DS_HIERARCHY_TABLE_TOO_DEEP
+ERROR_DS_HIGH_ADLDS_FFL
+ERROR_DS_HIGH_DSA_VERSION
+ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD
+ERROR_DS_ILLEGAL_MOD_OPERATION
+ERROR_DS_ILLEGAL_SUPERIOR
+ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION
+ERROR_DS_INAPPROPRIATE_AUTH
+ERROR_DS_INAPPROPRIATE_MATCHING
+ERROR_DS_INCOMPATIBLE_CONTROLS_USED
+ERROR_DS_INCOMPATIBLE_VERSION
+ERROR_DS_INCORRECT_ROLE_OWNER
+ERROR_DS_INIT_FAILURE
+ERROR_DS_INIT_FAILURE_CONSOLE
+ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE
+ERROR_DS_INSTALL_NO_SRC_SCH_VERSION
+ERROR_DS_INSTALL_SCHEMA_MISMATCH
+ERROR_DS_INSUFF_ACCESS_RIGHTS
+ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT
+ERROR_DS_INTERNAL_FAILURE
+ERROR_DS_INVALID_ATTRIBUTE_SYNTAX
+ERROR_DS_INVALID_DMD
+ERROR_DS_INVALID_DN_SYNTAX
+ERROR_DS_INVALID_GROUP_TYPE
+ERROR_DS_INVALID_LDAP_DISPLAY_NAME
+ERROR_DS_INVALID_NAME_FOR_SPN
+ERROR_DS_INVALID_ROLE_OWNER
+ERROR_DS_INVALID_SCRIPT
+ERROR_DS_INVALID_SEARCH_FLAG
+ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE
+ERROR_DS_INVALID_SEARCH_FLAG_TUPLE
+ERROR_DS_IS_LEAF
+ERROR_DS_KEY_NOT_UNIQUE
+ERROR_DS_LDAP_SEND_QUEUE_FULL
+ERROR_DS_LINK_ID_NOT_AVAILABLE
+ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER
+ERROR_DS_LOCAL_ERROR
+ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY
+ERROR_DS_LOOP_DETECT
+ERROR_DS_LOW_ADLDS_FFL
+ERROR_DS_LOW_DSA_VERSION
+ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4
+ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED
+ERROR_DS_MAPI_ID_NOT_AVAILABLE
+ERROR_DS_MASTERDSA_REQUIRED
+ERROR_DS_MAX_OBJ_SIZE_EXCEEDED
+ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY
+ERROR_DS_MISSING_EXPECTED_ATT
+ERROR_DS_MISSING_FOREST_TRUST
+ERROR_DS_MISSING_FSMO_SETTINGS
+ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER
+ERROR_DS_MISSING_REQUIRED_ATT
+ERROR_DS_MISSING_SUPREF
+ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG
+ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE
+ERROR_DS_MODIFYDN_WRONG_GRANDPARENT
+ERROR_DS_MUST_BE_RUN_ON_DST_DC
+ERROR_DS_NAME_ERROR_DOMAIN_ONLY
+ERROR_DS_NAME_ERROR_NO_MAPPING
+ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING
+ERROR_DS_NAME_ERROR_NOT_FOUND
+ERROR_DS_NAME_ERROR_NOT_UNIQUE
+ERROR_DS_NAME_ERROR_RESOLVING
+ERROR_DS_NAME_ERROR_TRUST_REFERRAL
+ERROR_DS_NAME_NOT_UNIQUE
+ERROR_DS_NAME_REFERENCE_INVALID
+ERROR_DS_NAME_TOO_LONG
+ERROR_DS_NAME_TOO_MANY_PARTS
+ERROR_DS_NAME_TYPE_UNKNOWN
+ERROR_DS_NAME_UNPARSEABLE
+ERROR_DS_NAME_VALUE_TOO_LONG
+ERROR_DS_NAMING_MASTER_GC
+ERROR_DS_NAMING_VIOLATION
+ERROR_DS_NC_MUST_HAVE_NC_PARENT
+ERROR_DS_NC_STILL_HAS_DSAS
+ERROR_DS_NCNAME_MISSING_CR_REF
+ERROR_DS_NCNAME_MUST_BE_NC
+ERROR_DS_NO_ATTRIBUTE_OR_VALUE
+ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN
+ERROR_DS_NO_CHAINED_EVAL
+ERROR_DS_NO_CHAINING
+ERROR_DS_NO_CHECKPOINT_WITH_PDC
+ERROR_DS_NO_CROSSREF_FOR_NC
+ERROR_DS_NO_DELETED_NAME
+ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS
+ERROR_DS_NO_MORE_RIDS
+ERROR_DS_NO_MSDS_INTID
+ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN
+ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN
+ERROR_DS_NO_NTDSA_OBJECT
+ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC
+ERROR_DS_NO_PARENT_OBJECT
+ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION
+ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA
+ERROR_DS_NO_REF_DOMAIN
+ERROR_DS_NO_REQUESTED_ATTS_FOUND
+ERROR_DS_NO_RESULTS_RETURNED
+ERROR_DS_NO_RIDS_ALLOCATED
+ERROR_DS_NO_SERVER_OBJECT
+ERROR_DS_NO_SUCH_OBJECT
+ERROR_DS_NO_TREE_DELETE_ABOVE_NC
+ERROR_DS_NON_ASQ_SEARCH
+ERROR_DS_NON_BASE_SEARCH
+ERROR_DS_NONEXISTENT_MAY_HAVE
+ERROR_DS_NONEXISTENT_MUST_HAVE
+ERROR_DS_NONEXISTENT_POSS_SUP
+ERROR_DS_NONSAFE_SCHEMA_CHANGE
+ERROR_DS_NOT_AN_OBJECT
+ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC
+ERROR_DS_NOT_CLOSEST
+ERROR_DS_NOT_INSTALLED
+ERROR_DS_NOT_ON_BACKLINK
+ERROR_DS_NOT_SUPPORTED
+ERROR_DS_NOT_SUPPORTED_SORT_ORDER
+ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX
+ERROR_DS_NTDSCRIPT_PROCESS_ERROR
+ERROR_DS_NTDSCRIPT_SYNTAX_ERROR
+ERROR_DS_OBJ_CLASS_NOT_DEFINED
+ERROR_DS_OBJ_CLASS_NOT_SUBCLASS
+ERROR_DS_OBJ_CLASS_VIOLATION
+ERROR_DS_OBJ_GUID_EXISTS
+ERROR_DS_OBJ_NOT_FOUND
+ERROR_DS_OBJ_STRING_NAME_EXISTS
+ERROR_DS_OBJ_TOO_LARGE
+ERROR_DS_OBJECT_BEING_REMOVED
+ERROR_DS_OBJECT_CLASS_REQUIRED
+ERROR_DS_OBJECT_RESULTS_TOO_LARGE
+ERROR_DS_OFFSET_RANGE_ERROR
+ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS
+ERROR_DS_OID_NOT_FOUND
+ERROR_DS_OPERATIONS_ERROR
+ERROR_DS_OUT_OF_SCOPE
+ERROR_DS_OUT_OF_VERSION_STORE
+ERROR_DS_PARAM_ERROR
+ERROR_DS_PARENT_IS_AN_ALIAS
+ERROR_DS_PDC_OPERATION_IN_PROGRESS
+ERROR_DS_PER_ATTRIBUTE_AUTHZ_FAILED_DURING_ADD
+ERROR_DS_POLICY_NOT_KNOWN
+ERROR_DS_PROTOCOL_ERROR
+ERROR_DS_RANGE_CONSTRAINT
+ERROR_DS_RDN_DOESNT_MATCH_SCHEMA
+ERROR_DS_RECALCSCHEMA_FAILED
+ERROR_DS_REFERRAL
+ERROR_DS_REFERRAL_LIMIT_EXCEEDED
+ERROR_DS_REFUSING_FSMO_ROLES
+ERROR_DS_REMOTE_CROSSREF_OP_FAILED
+ERROR_DS_REPL_LIFETIME_EXCEEDED
+ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR
+ERROR_DS_REPLICATOR_ONLY
+ERROR_DS_RESERVED_LINK_ID
+ERROR_DS_RESERVED_MAPI_ID
+ERROR_DS_RIDMGR_DISABLED
+ERROR_DS_RIDMGR_INIT_ERROR
+ERROR_DS_ROLE_NOT_VERIFIED
+ERROR_DS_ROOT_CANT_BE_SUBREF
+ERROR_DS_ROOT_MUST_BE_NC
+ERROR_DS_ROOT_REQUIRES_CLASS_TOP
+ERROR_DS_SAM_INIT_FAILURE
+ERROR_DS_SAM_INIT_FAILURE_CONSOLE
+ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY
+ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD
+ERROR_DS_SCHEMA_ALLOC_FAILED
+ERROR_DS_SCHEMA_NOT_LOADED
+ERROR_DS_SCHEMA_UPDATE_DISALLOWED
+ERROR_DS_SEC_DESC_INVALID
+ERROR_DS_SEC_DESC_TOO_SHORT
+ERROR_DS_SECURITY_CHECKING_ERROR
+ERROR_DS_SECURITY_ILLEGAL_MODIFY
+ERROR_DS_SEMANTIC_ATT_TEST
+ERROR_DS_SENSITIVE_GROUP_VIOLATION
+ERROR_DS_SERVER_DOWN
+ERROR_DS_SHUTTING_DOWN
+ERROR_DS_SINGLE_USER_MODE_FAILED
+ERROR_DS_SINGLE_VALUE_CONSTRAINT
+ERROR_DS_SIZELIMIT_EXCEEDED
+ERROR_DS_SORT_CONTROL_MISSING
+ERROR_DS_SOURCE_AUDITING_NOT_ENABLED
+ERROR_DS_SOURCE_DOMAIN_IN_FOREST
+ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST
+ERROR_DS_SRC_AND_DST_NC_IDENTICAL
+ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH
+ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER
+ERROR_DS_SRC_GUID_MISMATCH
+ERROR_DS_SRC_NAME_MISMATCH
+ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER
+ERROR_DS_SRC_SID_EXISTS_IN_FOREST
+ERROR_DS_STRING_SD_CONVERSION_FAILED
+ERROR_DS_STRONG_AUTH_REQUIRED
+ERROR_DS_SUB_CLS_TEST_FAIL
+ERROR_DS_SUBREF_MUST_HAVE_PARENT
+ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD
+ERROR_DS_SYNTAX_MISMATCH
+ERROR_DS_THREAD_LIMIT_EXCEEDED
+ERROR_DS_TIMELIMIT_EXCEEDED
+ERROR_DS_TREE_DELETE_NOT_FINISHED
+ERROR_DS_UNABLE_TO_SURRENDER_ROLES
+ERROR_DS_UNAVAILABLE
+ERROR_DS_UNAVAILABLE_CRIT_EXTENSION
+ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED
+ERROR_DS_UNICODEPWD_NOT_IN_QUOTES
+ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER
+ERROR_DS_UNKNOWN_ERROR
+ERROR_DS_UNKNOWN_OPERATION
+ERROR_DS_UNWILLING_TO_PERFORM
+ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST
+ERROR_DS_USER_BUFFER_TO_SMALL
+ERROR_DS_VALUE_KEY_NOT_UNIQUE
+ERROR_DS_VERSION_CHECK_FAILURE
+ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL
+ERROR_DS_WRONG_LINKED_ATT_SYNTAX
+ERROR_DS_WRONG_OM_OBJ_CLASS
+ERROR_DUP_DOMAINNAME
+ERROR_DUP_NAME
+ERROR_DUPLICATE_PRIVILEGES
+ERROR_DUPLICATE_SERVICE_NAME
+ERROR_DYNAMIC_CODE_BLOCKED
+ERROR_DYNLINK_FROM_INVALID_RING
+ERROR_EA_ACCESS_DENIED
+ERROR_EA_FILE_CORRUPT
+ERROR_EA_LIST_INCONSISTENT
+ERROR_EA_TABLE_FULL
+ERROR_EAS_DIDNT_FIT
+ERROR_EAS_NOT_SUPPORTED
+ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED
+ERROR_EDP_POLICY_DENIES_OPERATION
+ERROR_EFS_ALG_BLOB_TOO_BIG
+ERROR_EFS_DISABLED
+ERROR_EFS_SERVER_NOT_TRUSTED
+ERROR_EFS_VERSION_NOT_SUPPORT
+ERROR_ELEVATION_REQUIRED
+ERROR_ENCLAVE_FAILURE
+ERROR_ENCLAVE_NOT_TERMINATED
+ERROR_ENCLAVE_VIOLATION
+ERROR_ENCRYPTED_FILE_NOT_SUPPORTED
+ERROR_ENCRYPTED_IO_NOT_POSSIBLE
+ERROR_ENCRYPTING_METADATA_DISALLOWED
+ERROR_ENCRYPTION_DISABLED
+ERROR_ENCRYPTION_FAILED
+ERROR_ENCRYPTION_POLICY_DENIES_OPERATION
+ERROR_END_OF_MEDIA
+ERROR_ENVVAR_NOT_FOUND
+ERROR_EOM_OVERFLOW
+ERROR_ERRORS_ENCOUNTERED
+ERROR_EVALUATION_EXPIRATION
+ERROR_EVENT_DONE
+ERROR_EVENT_PENDING
+ERROR_EVENTLOG_CANT_START
+ERROR_EVENTLOG_FILE_CHANGED
+ERROR_EVENTLOG_FILE_CORRUPT
+ERROR_EXCEPTION_IN_SERVICE
+ERROR_EXCL_SEM_ALREADY_OWNED
+ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY
+ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY
+ERROR_EXE_MACHINE_TYPE_MISMATCH
+ERROR_EXE_MARKED_INVALID
+ERROR_EXTENDED_ERROR
+ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN
+ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED
+ERROR_EXTRANEOUS_INFORMATION
+ERROR_FAIL_FAST_EXCEPTION
+ERROR_FAIL_I24
+ERROR_FAIL_NOACTION_REBOOT
+ERROR_FAIL_RESTART
+ERROR_FAIL_SHUTDOWN
+ERROR_FAILED_DRIVER_ENTRY
+ERROR_FAILED_SERVICE_CONTROLLER_CONNECT
+ERROR_FATAL_APP_EXIT
+ERROR_FILE_CHECKED_OUT
+ERROR_FILE_CORRUPT
+ERROR_FILE_ENCRYPTED
+ERROR_FILE_EXISTS
+ERROR_FILE_HANDLE_REVOKED
+ERROR_FILE_INVALID
+ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED
+ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS
+ERROR_FILE_NOT_ENCRYPTED
+ERROR_FILE_NOT_FOUND
+ERROR_FILE_NOT_SUPPORTED
+ERROR_FILE_OFFLINE
+ERROR_FILE_PROTECTED_UNDER_DPL
+ERROR_FILE_READ_ONLY
+ERROR_FILE_SNAP_IN_PROGRESS
+ERROR_FILE_SNAP_INVALID_PARAMETER
+ERROR_FILE_SNAP_IO_NOT_COORDINATED
+ERROR_FILE_SNAP_MODIFY_NOT_SUPPORTED
+ERROR_FILE_SNAP_UNEXPECTED_ERROR
+ERROR_FILE_SNAP_USER_SECTION_NOT_SUPPORTED
+ERROR_FILE_SYSTEM_LIMITATION
+ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY
+ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION
+ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT
+ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN
+ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE
+ERROR_FILE_TOO_LARGE
+ERROR_FILEMARK_DETECTED
+ERROR_FILENAME_EXCED_RANGE
+ERROR_FIRMWARE_UPDATED
+ERROR_FLOAT_MULTIPLE_FAULTS
+ERROR_FLOAT_MULTIPLE_TRAPS
+ERROR_FLOPPY_BAD_REGISTERS
+ERROR_FLOPPY_ID_MARK_NOT_FOUND
+ERROR_FLOPPY_UNKNOWN_ERROR
+ERROR_FLOPPY_VOLUME
+ERROR_FLOPPY_WRONG_CYLINDER
+ERROR_FORMS_AUTH_REQUIRED
+ERROR_FOUND_OUT_OF_SCOPE
+ERROR_FS_DRIVER_REQUIRED
+ERROR_FS_METADATA_INCONSISTENT
+ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY
+ERROR_FT_DI_SCAN_REQUIRED
+ERROR_FT_READ_FAILURE
+ERROR_FT_READ_FROM_COPY_FAILURE
+ERROR_FT_READ_RECOVERY_FROM_BACKUP
+ERROR_FT_WRITE_FAILURE
+ERROR_FT_WRITE_RECOVERY
+ERROR_FULLSCREEN_MODE
+ERROR_FUNCTION_FAILED
+ERROR_FUNCTION_NOT_CALLED
+ERROR_GDI_HANDLE_LEAK
+ERROR_GEN_FAILURE
+ERROR_GENERIC_NOT_MAPPED
+ERROR_GLOBAL_ONLY_HOOK
+ERROR_GRACEFUL_DISCONNECT
+ERROR_GROUP_EXISTS
+ERROR_GUID_SUBSTITUTION_MADE
+ERROR_HANDLE_DISK_FULL
+ERROR_HANDLE_EOF
+ERROR_HANDLE_REVOKED
+ERROR_HANDLES_CLOSED
+ERROR_HAS_SYSTEM_CRITICAL_FILES
+ERROR_HIBERNATED
+ERROR_HIBERNATION_FAILURE
+ERROR_HOOK_NEEDS_HMOD
+ERROR_HOOK_NOT_INSTALLED
+ERROR_HOOK_TYPE_NOT_ALLOWED
+ERROR_HOST_DOWN
+ERROR_HOST_UNREACHABLE
+ERROR_HOTKEY_ALREADY_REGISTERED
+ERROR_HOTKEY_NOT_REGISTERED
+ERROR_HWNDS_HAVE_DIFF_PARENT
+ERROR_ILL_FORMED_PASSWORD
+ERROR_ILLEGAL_CHARACTER
+ERROR_ILLEGAL_DLL_RELOCATION
+ERROR_ILLEGAL_ELEMENT_ADDRESS
+ERROR_ILLEGAL_FLOAT_CONTEXT
+ERROR_IMAGE_AT_DIFFERENT_BASE
+ERROR_IMAGE_MACHINE_TYPE_MISMATCH
+ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE
+ERROR_IMAGE_NOT_AT_BASE
+ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT
+ERROR_IMPLEMENTATION_LIMIT
+ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE
+ERROR_INCOMPATIBLE_SERVICE_SID_TYPE
+ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING
+ERROR_INCORRECT_ACCOUNT_TYPE
+ERROR_INCORRECT_ADDRESS
+ERROR_INCORRECT_SIZE
+ERROR_INDEX_ABSENT
+ERROR_INDEX_OUT_OF_BOUNDS
+ERROR_INFLOOP_IN_RELOC_CHAIN
+ERROR_INSTALL_ALREADY_RUNNING
+ERROR_INSTALL_FAILURE
+ERROR_INSTALL_LANGUAGE_UNSUPPORTED
+ERROR_INSTALL_LOG_FAILURE
+ERROR_INSTALL_NOTUSED
+ERROR_INSTALL_PACKAGE_INVALID
+ERROR_INSTALL_PACKAGE_OPEN_FAILED
+ERROR_INSTALL_PACKAGE_REJECTED
+ERROR_INSTALL_PACKAGE_VERSION
+ERROR_INSTALL_PLATFORM_UNSUPPORTED
+ERROR_INSTALL_REJECTED
+ERROR_INSTALL_REMOTE_DISALLOWED
+ERROR_INSTALL_REMOTE_PROHIBITED
+ERROR_INSTALL_SERVICE_FAILURE
+ERROR_INSTALL_SERVICE_SAFEBOOT
+ERROR_INSTALL_SOURCE_ABSENT
+ERROR_INSTALL_SUSPEND
+ERROR_INSTALL_TEMP_UNWRITABLE
+ERROR_INSTALL_TRANSFORM_FAILURE
+ERROR_INSTALL_TRANSFORM_REJECTED
+ERROR_INSTALL_UI_FAILURE
+ERROR_INSTALL_USEREXIT
+ERROR_INSTRUCTION_MISALIGNMENT
+ERROR_INSUFFICIENT_BUFFER
+ERROR_INSUFFICIENT_LOGON_INFO
+ERROR_INSUFFICIENT_POWER
+ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE
+ERROR_INSUFFICIENT_VIRTUAL_ADDR_RESOURCES
+ERROR_INTERMIXED_KERNEL_EA_OPERATION
+ERROR_INTERNAL_DB_CORRUPTION
+ERROR_INTERNAL_DB_ERROR
+ERROR_INTERNAL_ERROR
+ERROR_INTERRUPT_STILL_CONNECTED
+ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED
+ERROR_INVALID_ACCEL_HANDLE
+ERROR_INVALID_ACCESS
+ERROR_INVALID_ACCOUNT_NAME
+ERROR_INVALID_ACE_CONDITION
+ERROR_INVALID_ACL
+ERROR_INVALID_ADDRESS
+ERROR_INVALID_AT_INTERRUPT_TIME
+ERROR_INVALID_BLOCK
+ERROR_INVALID_BLOCK_LENGTH
+ERROR_INVALID_CAP
+ERROR_INVALID_CATEGORY
+ERROR_INVALID_COMBOBOX_MESSAGE
+ERROR_INVALID_COMMAND_LINE
+ERROR_INVALID_COMPUTERNAME
+ERROR_INVALID_CRUNTIME_PARAMETER
+ERROR_INVALID_CURSOR_HANDLE
+ERROR_INVALID_DATA
+ERROR_INVALID_DATATYPE
+ERROR_INVALID_DEVICE_OBJECT_PARAMETER
+ERROR_INVALID_DLL
+ERROR_INVALID_DOMAIN_ROLE
+ERROR_INVALID_DOMAIN_STATE
+ERROR_INVALID_DOMAINNAME
+ERROR_INVALID_DRIVE
+ERROR_INVALID_DWP_HANDLE
+ERROR_INVALID_EA_HANDLE
+ERROR_INVALID_EA_NAME
+ERROR_INVALID_EDIT_HEIGHT
+ERROR_INVALID_ENVIRONMENT
+ERROR_INVALID_EVENT_COUNT
+ERROR_INVALID_EVENTNAME
+ERROR_INVALID_EXCEPTION_HANDLER
+ERROR_INVALID_EXE_SIGNATURE
+ERROR_INVALID_FIELD
+ERROR_INVALID_FIELD_IN_PARAMETER_LIST
+ERROR_INVALID_FILTER_PROC
+ERROR_INVALID_FLAG_NUMBER
+ERROR_INVALID_FLAGS
+ERROR_INVALID_FORM_NAME
+ERROR_INVALID_FORM_SIZE
+ERROR_INVALID_FUNCTION
+ERROR_INVALID_GROUP_ATTRIBUTES
+ERROR_INVALID_GROUPNAME
+ERROR_INVALID_GW_COMMAND
+ERROR_INVALID_HANDLE
+ERROR_INVALID_HANDLE_STATE
+ERROR_INVALID_HOOK_FILTER
+ERROR_INVALID_HOOK_HANDLE
+ERROR_INVALID_HW_PROFILE
+ERROR_INVALID_ICON_HANDLE
+ERROR_INVALID_ID_AUTHORITY
+ERROR_INVALID_IMAGE_HASH
+ERROR_INVALID_IMPORT_OF_NON_DLL
+ERROR_INVALID_INDEX
+ERROR_INVALID_KERNEL_INFO_VERSION
+ERROR_INVALID_KEYBOARD_HANDLE
+ERROR_INVALID_LABEL
+ERROR_INVALID_LB_MESSAGE
+ERROR_INVALID_LDT_DESCRIPTOR
+ERROR_INVALID_LDT_OFFSET
+ERROR_INVALID_LDT_SIZE
+ERROR_INVALID_LEVEL
+ERROR_INVALID_LIST_FORMAT
+ERROR_INVALID_LOCK_RANGE
+ERROR_INVALID_LOGON_HOURS
+ERROR_INVALID_LOGON_TYPE
+ERROR_INVALID_MEMBER
+ERROR_INVALID_MENU_HANDLE
+ERROR_INVALID_MESSAGE
+ERROR_INVALID_MESSAGEDEST
+ERROR_INVALID_MESSAGENAME
+ERROR_INVALID_MINALLOCSIZE
+ERROR_INVALID_MODULETYPE
+ERROR_INVALID_MONITOR_HANDLE
+ERROR_INVALID_MSGBOX_STYLE
+ERROR_INVALID_NAME
+ERROR_INVALID_NETNAME
+ERROR_INVALID_OPLOCK_PROTOCOL
+ERROR_INVALID_ORDINAL
+ERROR_INVALID_OWNER
+ERROR_INVALID_PACKAGE_SID_LENGTH
+ERROR_INVALID_PARAMETER
+ERROR_INVALID_PASSWORD
+ERROR_INVALID_PASSWORDNAME
+ERROR_INVALID_PATCH_XML
+ERROR_INVALID_PEP_INFO_VERSION
+ERROR_INVALID_PLUGPLAY_DEVICE_PATH
+ERROR_INVALID_PORT_ATTRIBUTES
+ERROR_INVALID_PRIMARY_GROUP
+ERROR_INVALID_PRINTER_COMMAND
+ERROR_INVALID_PRINTER_NAME
+ERROR_INVALID_PRINTER_STATE
+ERROR_INVALID_PRIORITY
+ERROR_INVALID_QUOTA_LOWER
+ERROR_INVALID_REPARSE_DATA
+ERROR_INVALID_SCROLLBAR_RANGE
+ERROR_INVALID_SECURITY_DESCR
+ERROR_INVALID_SEGDPL
+ERROR_INVALID_SEGMENT_NUMBER
+ERROR_INVALID_SEPARATOR_FILE
+ERROR_INVALID_SERVER_STATE
+ERROR_INVALID_SERVICE_ACCOUNT
+ERROR_INVALID_SERVICE_CONTROL
+ERROR_INVALID_SERVICE_LOCK
+ERROR_INVALID_SERVICENAME
+ERROR_INVALID_SHARENAME
+ERROR_INVALID_SHOWWIN_COMMAND
+ERROR_INVALID_SID
+ERROR_INVALID_SIGNAL_NUMBER
+ERROR_INVALID_SPI_VALUE
+ERROR_INVALID_STACKSEG
+ERROR_INVALID_STARTING_CODESEG
+ERROR_INVALID_SUB_AUTHORITY
+ERROR_INVALID_TABLE
+ERROR_INVALID_TARGET_HANDLE
+ERROR_INVALID_TASK_INDEX
+ERROR_INVALID_TASK_NAME
+ERROR_INVALID_THREAD_ID
+ERROR_INVALID_TIME
+ERROR_INVALID_TOKEN
+ERROR_INVALID_UNWIND_TARGET
+ERROR_INVALID_USER_BUFFER
+ERROR_INVALID_USER_PRINCIPAL_NAME
+ERROR_INVALID_VARIANT
+ERROR_INVALID_VERIFY_SWITCH
+ERROR_INVALID_WINDOW_HANDLE
+ERROR_INVALID_WORKSTATION
+ERROR_IO_DEVICE
+ERROR_IO_INCOMPLETE
+ERROR_IO_PENDING
+ERROR_IO_PRIVILEGE_FAILED
+ERROR_IO_REISSUE_AS_CACHED
+ERROR_IOPL_NOT_ENABLED
+ERROR_IP_ADDRESS_CONFLICT1
+ERROR_IP_ADDRESS_CONFLICT2
+ERROR_IPSEC_IKE_TIMED_OUT
+ERROR_IRQ_BUSY
+ERROR_IS_JOIN_PATH
+ERROR_IS_JOIN_TARGET
+ERROR_IS_JOINED
+ERROR_IS_SUBST_PATH
+ERROR_IS_SUBST_TARGET
+ERROR_IS_SUBSTED
+ERROR_ITERATED_DATA_EXCEEDS_64k
+ERROR_JOB_NO_CONTAINER
+ERROR_JOIN_TO_JOIN
+ERROR_JOIN_TO_SUBST
+ERROR_JOURNAL_DELETE_IN_PROGRESS
+ERROR_JOURNAL_ENTRY_DELETED
+ERROR_JOURNAL_HOOK_SET
+ERROR_JOURNAL_NOT_ACTIVE
+ERROR_KERNEL_APC
+ERROR_KEY_DELETED
+ERROR_KEY_HAS_CHILDREN
+ERROR_KM_DRIVER_BLOCKED
+ERROR_LABEL_TOO_LONG
+ERROR_LAST_ADMIN
+ERROR_LB_WITHOUT_TABSTOPS
+ERROR_LICENSE_QUOTA_EXCEEDED
+ERROR_LINUX_SUBSYSTEM_NOT_PRESENT
+ERROR_LINUX_SUBSYSTEM_UPDATE_REQUIRED
+ERROR_LISTBOX_ID_NOT_FOUND
+ERROR_LM_CROSS_ENCRYPTION_REQUIRED
+ERROR_LOCAL_POLICY_MODIFICATION_NOT_SUPPORTED
+ERROR_LOCAL_USER_SESSION_KEY
+ERROR_LOCK_FAILED
+ERROR_LOCK_VIOLATION
+ERROR_LOCKED
+ERROR_LOG_FILE_FULL
+ERROR_LOG_HARD_ERROR
+ERROR_LOGIN_TIME_RESTRICTION
+ERROR_LOGIN_WKSTA_RESTRICTION
+ERROR_LOGON_FAILURE
+ERROR_LOGON_NOT_GRANTED
+ERROR_LOGON_SERVER_CONFLICT
+ERROR_LOGON_SESSION_COLLISION
+ERROR_LOGON_SESSION_EXISTS
+ERROR_LOGON_TYPE_NOT_GRANTED
+ERROR_LONGJUMP
+ERROR_LOST_MODE_LOGON_RESTRICTION
+ERROR_LOST_WRITEBEHIND_DATA
+ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR
+ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED
+ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR
+ERROR_LUIDS_EXHAUSTED
+ERROR_MACHINE_LOCKED
+ERROR_MAGAZINE_NOT_PRESENT
+ERROR_MAPPED_ALIGNMENT
+ERROR_MARKED_TO_DISALLOW_WRITES
+ERROR_MARSHALL_OVERFLOW
+ERROR_MAX_SESSIONS_REACHED
+ERROR_MAX_THRDS_REACHED
+ERROR_MCA_EXCEPTION
+ERROR_MCA_OCCURED
+ERROR_MEDIA_CHANGED
+ERROR_MEDIA_CHECK
+ERROR_MEMBER_IN_ALIAS
+ERROR_MEMBER_IN_GROUP
+ERROR_MEMBER_NOT_IN_ALIAS
+ERROR_MEMBER_NOT_IN_GROUP
+ERROR_MEMBERS_PRIMARY_GROUP
+ERROR_MEMORY_HARDWARE
+ERROR_MENU_ITEM_NOT_FOUND
+ERROR_MESSAGE_SYNC_ONLY
+ERROR_META_EXPANSION_TOO_LONG
+ERROR_MISSING_SYSTEMFILE
+ERROR_MOD_NOT_FOUND
+ERROR_MORE_DATA
+ERROR_MORE_WRITES
+ERROR_MOUNT_POINT_NOT_RESOLVED
+ERROR_MP_PROCESSOR_MISMATCH
+ERROR_MR_MID_NOT_FOUND
+ERROR_MULTIPLE_FAULT_VIOLATION
+ERROR_MUTANT_LIMIT_EXCEEDED
+ERROR_MUTUAL_AUTH_FAILED
+ERROR_NEGATIVE_SEEK
+ERROR_NESTING_NOT_ALLOWED
+ERROR_NET_OPEN_FAILED
+ERROR_NET_WRITE_FAULT
+ERROR_NETLOGON_NOT_STARTED
+ERROR_NETNAME_DELETED
+ERROR_NETWORK_ACCESS_DENIED
+ERROR_NETWORK_ACCESS_DENIED_EDP
+ERROR_NETWORK_BUSY
+ERROR_NETWORK_UNREACHABLE
+ERROR_NO_ACE_CONDITION
+ERROR_NO_ASSOCIATION
+ERROR_NO_BYPASSIO_DRIVER_SUPPORT
+ERROR_NO_CALLBACK_ACTIVE
+ERROR_NO_DATA
+ERROR_NO_DATA_DETECTED
+ERROR_NO_EFS
+ERROR_NO_EVENT_PAIR
+ERROR_NO_GUID_TRANSLATION
+ERROR_NO_IMPERSONATION_TOKEN
+ERROR_NO_INHERITANCE
+ERROR_NO_LOG_SPACE
+ERROR_NO_LOGON_SERVERS
+ERROR_NO_MATCH
+ERROR_NO_MEDIA_IN_DRIVE
+ERROR_NO_MORE_DEVICES
+ERROR_NO_MORE_FILES
+ERROR_NO_MORE_ITEMS
+ERROR_NO_MORE_MATCHES
+ERROR_NO_MORE_SEARCH_HANDLES
+ERROR_NO_MORE_USER_HANDLES
+ERROR_NO_NET_OR_BAD_PATH
+ERROR_NO_NETWORK
+ERROR_NO_NVRAM_RESOURCES
+ERROR_NO_PAGEFILE
+ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND
+ERROR_NO_PROC_SLOTS
+ERROR_NO_PROMOTION_ACTIVE
+ERROR_NO_QUOTAS_FOR_ACCOUNT
+ERROR_NO_RANGES_PROCESSED
+ERROR_NO_RECOVERY_POLICY
+ERROR_NO_RECOVERY_PROGRAM
+ERROR_NO_SCROLLBARS
+ERROR_NO_SECRETS
+ERROR_NO_SECURITY_ON_OBJECT
+ERROR_NO_SHUTDOWN_IN_PROGRESS
+ERROR_NO_SIGNAL_SENT
+ERROR_NO_SITE_SETTINGS_OBJECT
+ERROR_NO_SITENAME
+ERROR_NO_SPOOL_SPACE
+ERROR_NO_SUCH_ALIAS
+ERROR_NO_SUCH_DEVICE
+ERROR_NO_SUCH_DOMAIN
+ERROR_NO_SUCH_GROUP
+ERROR_NO_SUCH_LOGON_SESSION
+ERROR_NO_SUCH_MEMBER
+ERROR_NO_SUCH_PACKAGE
+ERROR_NO_SUCH_PRIVILEGE
+ERROR_NO_SUCH_SITE
+ERROR_NO_SUCH_USER
+ERROR_NO_SYSTEM_MENU
+ERROR_NO_SYSTEM_RESOURCES
+ERROR_NO_TASK_QUEUE
+ERROR_NO_TOKEN
+ERROR_NO_TRACKING_SERVICE
+ERROR_NO_TRUST_LSA_SECRET
+ERROR_NO_TRUST_SAM_ACCOUNT
+ERROR_NO_UNICODE_TRANSLATION
+ERROR_NO_USER_KEYS
+ERROR_NO_USER_SESSION_KEY
+ERROR_NO_VOLUME_ID
+ERROR_NO_VOLUME_LABEL
+ERROR_NO_WILDCARD_CHARACTERS
+ERROR_NO_WORK_DONE
+ERROR_NO_WRITABLE_DC_FOUND
+ERROR_NO_YIELD_PERFORMED
+ERROR_NOACCESS
+ERROR_NOINTERFACE
+ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT
+ERROR_NOLOGON_SERVER_TRUST_ACCOUNT
+ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT
+ERROR_NON_ACCOUNT_SID
+ERROR_NON_DOMAIN_SID
+ERROR_NON_MDICHILD_WINDOW
+ERROR_NONE_MAPPED
+ERROR_NONPAGED_SYSTEM_RESOURCES
+ERROR_NOT_A_CLOUD_FILE
+ERROR_NOT_A_CLOUD_SYNC_ROOT
+ERROR_NOT_A_DAX_VOLUME
+ERROR_NOT_A_REPARSE_POINT
+ERROR_NOT_ALL_ASSIGNED
+ERROR_NOT_ALLOWED_ON_SYSTEM_FILE
+ERROR_NOT_APPCONTAINER
+ERROR_NOT_AUTHENTICATED
+ERROR_NOT_CAPABLE
+ERROR_NOT_CHILD_WINDOW
+ERROR_NOT_CONNECTED
+ERROR_NOT_CONTAINER
+ERROR_NOT_DAX_MAPPABLE
+ERROR_NOT_DOS_DISK
+ERROR_NOT_ENOUGH_MEMORY
+ERROR_NOT_ENOUGH_QUOTA
+ERROR_NOT_ENOUGH_SERVER_MEMORY
+ERROR_NOT_EXPORT_FORMAT
+ERROR_NOT_FOUND
+ERROR_NOT_GUI_PROCESS
+ERROR_NOT_JOINED
+ERROR_NOT_LOCKED
+ERROR_NOT_LOGGED_ON
+ERROR_NOT_LOGON_PROCESS
+ERROR_NOT_OWNER
+ERROR_NOT_READ_FROM_COPY
+ERROR_NOT_READY
+ERROR_NOT_REDUNDANT_STORAGE
+ERROR_NOT_REGISTRY_FILE
+ERROR_NOT_SAFE_MODE_DRIVER
+ERROR_NOT_SAFEBOOT_SERVICE
+ERROR_NOT_SAME_DEVICE
+ERROR_NOT_SAME_OBJECT
+ERROR_NOT_SUBSTED
+ERROR_NOT_SUPPORTED
+ERROR_NOT_SUPPORTED_IN_APPCONTAINER
+ERROR_NOT_SUPPORTED_ON_DAX
+ERROR_NOT_SUPPORTED_ON_SBS
+ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER
+ERROR_NOT_SUPPORTED_WITH_AUDITING
+ERROR_NOT_SUPPORTED_WITH_BTT
+ERROR_NOT_SUPPORTED_WITH_BYPASSIO
+ERROR_NOT_SUPPORTED_WITH_CACHED_HANDLE
+ERROR_NOT_SUPPORTED_WITH_COMPRESSION
+ERROR_NOT_SUPPORTED_WITH_DEDUPLICATION
+ERROR_NOT_SUPPORTED_WITH_ENCRYPTION
+ERROR_NOT_SUPPORTED_WITH_MONITORING
+ERROR_NOT_SUPPORTED_WITH_REPLICATION
+ERROR_NOT_SUPPORTED_WITH_SNAPSHOT
+ERROR_NOT_SUPPORTED_WITH_VIRTUALIZATION
+ERROR_NOT_TINY_STREAM
+ERROR_NOTHING_TO_TERMINATE
+ERROR_NOTIFICATION_GUID_ALREADY_DEFINED
+ERROR_NOTIFY_CLEANUP
+ERROR_NOTIFY_ENUM_DIR
+ERROR_NT_CROSS_ENCRYPTION_REQUIRED
+ERROR_NTLM_BLOCKED
+ERROR_NULL_LM_PASSWORD
+ERROR_OBJECT_IS_IMMUTABLE
+ERROR_OBJECT_NAME_EXISTS
+ERROR_OBJECT_NOT_EXTERNALLY_BACKED
+ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED
+ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED
+ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED
+ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED
+ERROR_OFFSET_ALIGNMENT_VIOLATION
+ERROR_OLD_WIN_VERSION
+ERROR_ONLY_IF_CONNECTED
+ERROR_OPEN_FAILED
+ERROR_OPEN_FILES
+ERROR_OPERATION_ABORTED
+ERROR_OPERATION_IN_PROGRESS
+ERROR_OPLOCK_BREAK_IN_PROGRESS
+ERROR_OPLOCK_HANDLE_CLOSED
+ERROR_OPLOCK_NOT_GRANTED
+ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE
+ERROR_ORPHAN_NAME_EXHAUSTED
+ERROR_OUT_OF_PAPER
+ERROR_OUT_OF_STRUCTURES
+ERROR_OUTOFMEMORY
+ERROR_OVERRIDE_NOCHANGES
+ERROR_PAGE_FAULT_COPY_ON_WRITE
+ERROR_PAGE_FAULT_DEMAND_ZERO
+ERROR_PAGE_FAULT_GUARD_PAGE
+ERROR_PAGE_FAULT_PAGING_FILE
+ERROR_PAGE_FAULT_TRANSITION
+ERROR_PAGED_SYSTEM_RESOURCES
+ERROR_PAGEFILE_CREATE_FAILED
+ERROR_PAGEFILE_NOT_SUPPORTED
+ERROR_PAGEFILE_QUOTA
+ERROR_PAGEFILE_QUOTA_EXCEEDED
+ERROR_PARAMETER_QUOTA_EXCEEDED
+ERROR_PARTIAL_COPY
+ERROR_PARTITION_FAILURE
+ERROR_PARTITION_TERMINATING
+ERROR_PASSWORD_CHANGE_REQUIRED
+ERROR_PASSWORD_EXPIRED
+ERROR_PASSWORD_MUST_CHANGE
+ERROR_PASSWORD_RESTRICTION
+ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT
+ERROR_PATCH_NO_SEQUENCE
+ERROR_PATCH_PACKAGE_INVALID
+ERROR_PATCH_PACKAGE_OPEN_FAILED
+ERROR_PATCH_PACKAGE_REJECTED
+ERROR_PATCH_PACKAGE_UNSUPPORTED
+ERROR_PATCH_REMOVAL_DISALLOWED
+ERROR_PATCH_REMOVAL_UNSUPPORTED
+ERROR_PATCH_TARGET_NOT_FOUND
+ERROR_PATH_BUSY
+ERROR_PATH_NOT_FOUND
+ERROR_PER_USER_TRUST_QUOTA_EXCEEDED
+ERROR_PIPE_BUSY
+ERROR_PIPE_CONNECTED
+ERROR_PIPE_LISTENING
+ERROR_PIPE_LOCAL
+ERROR_PIPE_NOT_CONNECTED
+ERROR_PKINIT_FAILURE
+ERROR_PLUGPLAY_QUERY_VETOED
+ERROR_PNP_BAD_MPS_TABLE
+ERROR_PNP_INVALID_ID
+ERROR_PNP_IRQ_TRANSLATION_FAILED
+ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT
+ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT
+ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT
+ERROR_PNP_REBOOT_REQUIRED
+ERROR_PNP_RESTART_ENUMERATION
+ERROR_PNP_TRANSLATION_FAILED
+ERROR_POINT_NOT_FOUND
+ERROR_POLICY_OBJECT_NOT_FOUND
+ERROR_POLICY_ONLY_IN_DS
+ERROR_POPUP_ALREADY_ACTIVE
+ERROR_PORT_MESSAGE_TOO_LONG
+ERROR_PORT_NOT_SET
+ERROR_PORT_UNREACHABLE
+ERROR_POSSIBLE_DEADLOCK
+ERROR_POTENTIAL_FILE_FOUND
+ERROR_PREDEFINED_HANDLE
+ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED
+ERROR_PRINT_CANCELLED
+ERROR_PRINTER_ALREADY_EXISTS
+ERROR_PRINTER_DELETED
+ERROR_PRINTER_DRIVER_ALREADY_INSTALLED
+ERROR_PRINTQ_FULL
+ERROR_PRIVATE_DIALOG_INDEX
+ERROR_PRIVILEGE_NOT_HELD
+ERROR_PROC_NOT_FOUND
+ERROR_PROCESS_ABORTED
+ERROR_PROCESS_IN_JOB
+ERROR_PROCESS_IS_PROTECTED
+ERROR_PROCESS_MODE_ALREADY_BACKGROUND
+ERROR_PROCESS_MODE_NOT_BACKGROUND
+ERROR_PROCESS_NOT_IN_JOB
+ERROR_PRODUCT_UNINSTALLED
+ERROR_PRODUCT_VERSION
+ERROR_PROFILING_AT_LIMIT
+ERROR_PROFILING_NOT_STARTED
+ERROR_PROFILING_NOT_STOPPED
+ERROR_PROMOTION_ACTIVE
+ERROR_PROTOCOL_UNREACHABLE
+ERROR_PWD_HISTORY_CONFLICT
+ERROR_PWD_TOO_LONG
+ERROR_PWD_TOO_RECENT
+ERROR_PWD_TOO_SHORT
+ERROR_QUOTA_ACTIVITY
+ERROR_QUOTA_LIST_INCONSISTENT
+ERROR_RANGE_LIST_CONFLICT
+ERROR_RANGE_NOT_FOUND
+ERROR_READ_FAULT
+ERROR_RECEIVE_EXPEDITED
+ERROR_RECEIVE_PARTIAL
+ERROR_RECEIVE_PARTIAL_EXPEDITED
+ERROR_RECOVERY_FAILURE
+ERROR_REDIR_PAUSED
+ERROR_REDIRECTOR_HAS_OPEN_HANDLES
+ERROR_REG_NAT_CONSUMPTION
+ERROR_REGISTRY_CORRUPT
+ERROR_REGISTRY_HIVE_RECOVERED
+ERROR_REGISTRY_IO_FAILED
+ERROR_REGISTRY_QUOTA_LIMIT
+ERROR_REGISTRY_RECOVERED
+ERROR_RELOC_CHAIN_XEEDS_SEGLIM
+ERROR_REM_NOT_LIST
+ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED
+ERROR_REMOTE_SESSION_LIMIT_EXCEEDED
+ERROR_REMOTE_STORAGE_MEDIA_ERROR
+ERROR_REMOTE_STORAGE_NOT_ACTIVE
+ERROR_REPARSE
+ERROR_REPARSE_ATTRIBUTE_CONFLICT
+ERROR_REPARSE_OBJECT
+ERROR_REPARSE_POINT_ENCOUNTERED
+ERROR_REPARSE_TAG_INVALID
+ERROR_REPARSE_TAG_MISMATCH
+ERROR_REPLY_MESSAGE_MISMATCH
+ERROR_REQ_NOT_ACCEP
+ERROR_REQUEST_ABORTED
+ERROR_REQUEST_OUT_OF_SEQUENCE
+ERROR_REQUEST_PAUSED
+ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
+ERROR_RESIDENT_FILE_NOT_SUPPORTED
+ERROR_RESOURCE_CALL_TIMED_OUT
+ERROR_RESOURCE_DATA_NOT_FOUND
+ERROR_RESOURCE_LANG_NOT_FOUND
+ERROR_RESOURCE_NAME_NOT_FOUND
+ERROR_RESOURCE_REQUIREMENTS_CHANGED
+ERROR_RESOURCE_TYPE_NOT_FOUND
+ERROR_RESTART_APPLICATION
+ERROR_RESUME_HIBERNATION
+ERROR_RETRY
+ERROR_RETURN_ADDRESS_HIJACK_ATTEMPT
+ERROR_REVISION_MISMATCH
+ERROR_RING2_STACK_IN_USE
+ERROR_RING2SEG_MUST_BE_MOVABLE
+ERROR_RMODE_APP
+ERROR_ROWSNOTRELEASED
+ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT
+ERROR_RUNLEVEL_SWITCH_TIMEOUT
+ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED
+ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET
+ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE
+ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER
+ERROR_RXACT_COMMIT_FAILURE
+ERROR_RXACT_COMMIT_NECESSARY
+ERROR_RXACT_COMMITTED
+ERROR_RXACT_INVALID_STATE
+ERROR_RXACT_STATE_CREATED
+ERROR_SAM_INIT_FAILURE
+ERROR_SAME_DRIVE
+ERROR_SCOPE_NOT_FOUND
+ERROR_SCREEN_ALREADY_LOCKED
+ERROR_SCRUB_DATA_DISABLED
+ERROR_SECRET_TOO_LONG
+ERROR_SECTION_DIRECT_MAP_ONLY
+ERROR_SECTOR_NOT_FOUND
+ERROR_SECURITY_DENIES_OPERATION
+ERROR_SECURITY_STREAM_IS_INCONSISTENT
+ERROR_SEEK
+ERROR_SEEK_ON_DEVICE
+ERROR_SEGMENT_NOTIFICATION
+ERROR_SEM_IS_SET
+ERROR_SEM_NOT_FOUND
+ERROR_SEM_OWNER_DIED
+ERROR_SEM_TIMEOUT
+ERROR_SEM_USER_LIMIT
+ERROR_SERIAL_NO_DEVICE
+ERROR_SERVER_DISABLED
+ERROR_SERVER_HAS_OPEN_HANDLES
+ERROR_SERVER_NOT_DISABLED
+ERROR_SERVER_SHUTDOWN_IN_PROGRESS
+ERROR_SERVER_SID_MISMATCH
+ERROR_SERVER_TRANSPORT_CONFLICT
+ERROR_SERVICE_ALREADY_RUNNING
+ERROR_SERVICE_CANNOT_ACCEPT_CTRL
+ERROR_SERVICE_DATABASE_LOCKED
+ERROR_SERVICE_DEPENDENCY_DELETED
+ERROR_SERVICE_DEPENDENCY_FAIL
+ERROR_SERVICE_DISABLED
+ERROR_SERVICE_DOES_NOT_EXIST
+ERROR_SERVICE_EXISTS
+ERROR_SERVICE_LOGON_FAILED
+ERROR_SERVICE_MARKED_FOR_DELETE
+ERROR_SERVICE_NEVER_STARTED
+ERROR_SERVICE_NO_THREAD
+ERROR_SERVICE_NOT_ACTIVE
+ERROR_SERVICE_NOT_FOUND
+ERROR_SERVICE_NOT_IN_EXE
+ERROR_SERVICE_NOTIFICATION
+ERROR_SERVICE_NOTIFY_CLIENT_LAGGING
+ERROR_SERVICE_REQUEST_TIMEOUT
+ERROR_SERVICE_SPECIFIC_ERROR
+ERROR_SERVICE_START_HANG
+ERROR_SESSION_CREDENTIAL_CONFLICT
+ERROR_SESSION_KEY_TOO_SHORT
+ERROR_SET_CONTEXT_DENIED
+ERROR_SET_NOT_FOUND
+ERROR_SET_POWER_STATE_FAILED
+ERROR_SET_POWER_STATE_VETOED
+ERROR_SETCOUNT_ON_BAD_LB
+ERROR_SETMARK_DETECTED
+ERROR_SHARED_POLICY
+ERROR_SHARING_BUFFER_EXCEEDED
+ERROR_SHARING_PAUSED
+ERROR_SHARING_VIOLATION
+ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME
+ERROR_SHUTDOWN_DISKS_NOT_IN_MAINTENANCE_MODE
+ERROR_SHUTDOWN_IN_PROGRESS
+ERROR_SHUTDOWN_IS_SCHEDULED
+ERROR_SHUTDOWN_USERS_LOGGED_ON
+ERROR_SIGNAL_PENDING
+ERROR_SIGNAL_REFUSED
+ERROR_SINGLE_INSTANCE_APP
+ERROR_SMARTCARD_SUBSYSTEM_FAILURE
+ERROR_SMB1_NOT_AVAILABLE
+ERROR_SMB_GUEST_LOGON_BLOCKED
+ERROR_SMR_GARBAGE_COLLECTION_REQUIRED
+ERROR_SOME_NOT_MAPPED
+ERROR_SOURCE_ELEMENT_EMPTY
+ERROR_SPARSE_FILE_NOT_SUPPORTED
+ERROR_SPECIAL_ACCOUNT
+ERROR_SPECIAL_GROUP
+ERROR_SPECIAL_USER
+ERROR_SRC_SRV_DLL_LOAD_FAILED
+ERROR_STACK_BUFFER_OVERRUN
+ERROR_STACK_OVERFLOW
+ERROR_STACK_OVERFLOW_READ
+ERROR_STOPPED_ON_SYMLINK
+ERROR_STORAGE_LOST_DATA_PERSISTENCE
+ERROR_STORAGE_RESERVE_ALREADY_EXISTS
+ERROR_STORAGE_RESERVE_DOES_NOT_EXIST
+ERROR_STORAGE_RESERVE_ID_INVALID
+ERROR_STORAGE_RESERVE_NOT_EMPTY
+ERROR_STORAGE_STACK_ACCESS_DENIED
+ERROR_STORAGE_TOPOLOGY_ID_MISMATCH
+ERROR_STRICT_CFG_VIOLATION
+ERROR_SUBST_TO_JOIN
+ERROR_SUBST_TO_SUBST
+ERROR_SUCCESS
+ERROR_SUCCESS_REBOOT_INITIATED
+ERROR_SWAPERROR
+ERROR_SYMLINK_CLASS_DISABLED
+ERROR_SYMLINK_NOT_SUPPORTED
+ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED
+ERROR_SYNCHRONIZATION_REQUIRED
+ERROR_SYSTEM_HIVE_TOO_LARGE
+ERROR_SYSTEM_IMAGE_BAD_SIGNATURE
+ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION
+ERROR_SYSTEM_POWERSTATE_TRANSITION
+ERROR_SYSTEM_PROCESS_TERMINATED
+ERROR_SYSTEM_SHUTDOWN
+ERROR_SYSTEM_TRACE
+ERROR_THREAD_1_INACTIVE
+ERROR_THREAD_ALREADY_IN_TASK
+ERROR_THREAD_MODE_ALREADY_BACKGROUND
+ERROR_THREAD_MODE_NOT_BACKGROUND
+ERROR_THREAD_NOT_IN_PROCESS
+ERROR_THREAD_WAS_SUSPENDED
+ERROR_TIME_SENSITIVE_THREAD
+ERROR_TIME_SKEW
+ERROR_TIMEOUT
+ERROR_TIMER_NOT_CANCELED
+ERROR_TIMER_RESOLUTION_NOT_SET
+ERROR_TIMER_RESUME_IGNORED
+ERROR_TLW_WITH_WSCHILD
+ERROR_TOKEN_ALREADY_IN_USE
+ERROR_TOO_MANY_CMDS
+ERROR_TOO_MANY_CONTEXT_IDS
+ERROR_TOO_MANY_DESCRIPTORS
+ERROR_TOO_MANY_LINKS
+ERROR_TOO_MANY_LUIDS_REQUESTED
+ERROR_TOO_MANY_MODULES
+ERROR_TOO_MANY_MUXWAITERS
+ERROR_TOO_MANY_NAMES
+ERROR_TOO_MANY_OPEN_FILES
+ERROR_TOO_MANY_POSTS
+ERROR_TOO_MANY_SECRETS
+ERROR_TOO_MANY_SEM_REQUESTS
+ERROR_TOO_MANY_SEMAPHORES
+ERROR_TOO_MANY_SESS
+ERROR_TOO_MANY_SIDS
+ERROR_TOO_MANY_TCBS
+ERROR_TOO_MANY_THREADS
+ERROR_TRANSLATION_COMPLETE
+ERROR_TRUST_FAILURE
+ERROR_TRUSTED_DOMAIN_FAILURE
+ERROR_TRUSTED_RELATIONSHIP_FAILURE
+ERROR_UNABLE_TO_LOCK_MEDIA
+ERROR_UNABLE_TO_MOVE_REPLACEMENT
+ERROR_UNABLE_TO_MOVE_REPLACEMENT_2
+ERROR_UNABLE_TO_REMOVE_REPLACED
+ERROR_UNABLE_TO_UNLOAD_MEDIA
+ERROR_UNDEFINED_CHARACTER
+ERROR_UNDEFINED_SCOPE
+ERROR_UNEXP_NET_ERR
+ERROR_UNEXPECTED_MM_CREATE_ERR
+ERROR_UNEXPECTED_MM_EXTEND_ERR
+ERROR_UNEXPECTED_MM_MAP_ERROR
+ERROR_UNEXPECTED_NTCACHEMANAGER_ERROR
+ERROR_UNHANDLED_EXCEPTION
+ERROR_UNIDENTIFIED_ERROR
+ERROR_UNKNOWN_COMPONENT
+ERROR_UNKNOWN_FEATURE
+ERROR_UNKNOWN_PATCH
+ERROR_UNKNOWN_PORT
+ERROR_UNKNOWN_PRINTER_DRIVER
+ERROR_UNKNOWN_PRINTPROCESSOR
+ERROR_UNKNOWN_PRODUCT
+ERROR_UNKNOWN_PROPERTY
+ERROR_UNKNOWN_REVISION
+ERROR_UNRECOGNIZED_MEDIA
+ERROR_UNRECOGNIZED_VOLUME
+ERROR_UNSATISFIED_DEPENDENCIES
+ERROR_UNSUPPORTED_COMPRESSION
+ERROR_UNSUPPORTED_TYPE
+ERROR_UNTRUSTED_MOUNT_POINT
+ERROR_UNWIND
+ERROR_UNWIND_CONSOLIDATE
+ERROR_USER_APC
+ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED
+ERROR_USER_EXISTS
+ERROR_USER_MAPPED_FILE
+ERROR_USER_PROFILE_LOAD
+ERROR_VALIDATE_CONTINUE
+ERROR_VC_DISCONNECTED
+ERROR_VDM_DISALLOWED
+ERROR_VDM_HARD_ERROR
+ERROR_VERIFIER_STOP
+ERROR_VERSION_PARSE_ERROR
+ERROR_VIRUS_DELETED
+ERROR_VIRUS_INFECTED
+ERROR_VOLSNAP_HIBERNATE_READY
+ERROR_VOLSNAP_PREPARE_HIBERNATE
+ERROR_VOLUME_MOUNTED
+ERROR_VOLUME_NOT_CLUSTER_ALIGNED
+ERROR_VOLUME_NOT_SIS_ENABLED
+ERROR_VOLUME_NOT_SUPPORT_EFS
+ERROR_VOLUME_NOT_SUPPORTED
+ERROR_VOLUME_WRITE_ACCESS_DENIED
+ERROR_WAIT_1
+ERROR_WAIT_2
+ERROR_WAIT_3
+ERROR_WAIT_63
+ERROR_WAIT_FOR_OPLOCK
+ERROR_WAIT_NO_CHILDREN
+ERROR_WAKE_SYSTEM
+ERROR_WAKE_SYSTEM_DEBUGGER
+ERROR_WAS_LOCKED
+ERROR_WAS_UNLOCKED
+ERROR_WEAK_WHFBKEY_BLOCKED
+ERROR_WINDOW_NOT_COMBOBOX
+ERROR_WINDOW_NOT_DIALOG
+ERROR_WINDOW_OF_OTHER_THREAD
+ERROR_WIP_ENCRYPTION_FAILED
+ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT
+ERROR_WOF_WIM_HEADER_CORRUPT
+ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT
+ERROR_WORKING_SET_QUOTA
+ERROR_WOW_ASSERTION
+ERROR_WRITE_FAULT
+ERROR_WRITE_PROTECT
+ERROR_WRONG_COMPARTMENT
+ERROR_WRONG_DISK
+ERROR_WRONG_EFS
+ERROR_WRONG_PASSWORD
+ERROR_WRONG_TARGET_NAME
+ERROR_WX86_ERROR
+ERROR_WX86_WARNING
+ERROR_XML_PARSE_ERROR
+ERROR_XMLDSIG_ERROR
+EXCEPTION_DISPOSITION
+EXCEPTION_MAXIMUM_PARAMETERS
+EXCEPTION_RECORD
+EXCEPTION_STACK_OVERFLOW
+ExceptionCollidedUnwind
+ExceptionContinueExecution
+ExceptionContinueSearch
+ExceptionNestedException
+ExitProcess
+EXTENDED_STARTUPINFO_PRESENT
+FACILITY_CODE
+FACILITY_NT_BIT
+FALSE
+FARPROC
+FAST_FAIL_FATAL_APP_EXIT
+FD_SET
+FILE_ACCESS_RIGHTS
+FILE_ADD_FILE
+FILE_ADD_SUBDIRECTORY
+FILE_ALL_ACCESS
+FILE_ALLOCATION_INFO
+FILE_APPEND_DATA
+FILE_ATTRIBUTE_ARCHIVE
+FILE_ATTRIBUTE_COMPRESSED
+FILE_ATTRIBUTE_DEVICE
+FILE_ATTRIBUTE_DIRECTORY
+FILE_ATTRIBUTE_EA
+FILE_ATTRIBUTE_ENCRYPTED
+FILE_ATTRIBUTE_HIDDEN
+FILE_ATTRIBUTE_INTEGRITY_STREAM
+FILE_ATTRIBUTE_NO_SCRUB_DATA
+FILE_ATTRIBUTE_NORMAL
+FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
+FILE_ATTRIBUTE_OFFLINE
+FILE_ATTRIBUTE_PINNED
+FILE_ATTRIBUTE_READONLY
+FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
+FILE_ATTRIBUTE_RECALL_ON_OPEN
+FILE_ATTRIBUTE_REPARSE_POINT
+FILE_ATTRIBUTE_SPARSE_FILE
+FILE_ATTRIBUTE_SYSTEM
+FILE_ATTRIBUTE_TAG_INFO
+FILE_ATTRIBUTE_TEMPORARY
+FILE_ATTRIBUTE_UNPINNED
+FILE_ATTRIBUTE_VIRTUAL
+FILE_BASIC_INFO
+FILE_BEGIN
+FILE_COMPLETE_IF_OPLOCKED
+FILE_CONTAINS_EXTENDED_CREATE_INFORMATION
+FILE_CREATE
+FILE_CREATE_PIPE_INSTANCE
+FILE_CREATE_TREE_CONNECTION
+FILE_CREATION_DISPOSITION
+FILE_CURRENT
+FILE_DELETE_CHILD
+FILE_DELETE_ON_CLOSE
+FILE_DIRECTORY_FILE
+FILE_DISALLOW_EXCLUSIVE
+FILE_DISPOSITION_FLAG_DELETE
+FILE_DISPOSITION_FLAG_DO_NOT_DELETE
+FILE_DISPOSITION_FLAG_FORCE_IMAGE_SECTION_CHECK
+FILE_DISPOSITION_FLAG_IGNORE_READONLY_ATTRIBUTE
+FILE_DISPOSITION_FLAG_ON_CLOSE
+FILE_DISPOSITION_FLAG_POSIX_SEMANTICS
+FILE_DISPOSITION_INFO
+FILE_DISPOSITION_INFO_EX
+FILE_DISPOSITION_INFO_EX_FLAGS
+FILE_END
+FILE_END_OF_FILE_INFO
+FILE_EXECUTE
+FILE_FLAG_BACKUP_SEMANTICS
+FILE_FLAG_DELETE_ON_CLOSE
+FILE_FLAG_FIRST_PIPE_INSTANCE
+FILE_FLAG_NO_BUFFERING
+FILE_FLAG_OPEN_NO_RECALL
+FILE_FLAG_OPEN_REPARSE_POINT
+FILE_FLAG_OVERLAPPED
+FILE_FLAG_POSIX_SEMANTICS
+FILE_FLAG_RANDOM_ACCESS
+FILE_FLAG_SEQUENTIAL_SCAN
+FILE_FLAG_SESSION_AWARE
+FILE_FLAG_WRITE_THROUGH
+FILE_FLAGS_AND_ATTRIBUTES
+FILE_GENERIC_EXECUTE
+FILE_GENERIC_READ
+FILE_GENERIC_WRITE
+FILE_ID_BOTH_DIR_INFO
+FILE_INFO_BY_HANDLE_CLASS
+FILE_IO_PRIORITY_HINT_INFO
+FILE_LIST_DIRECTORY
+FILE_NAME_NORMALIZED
+FILE_NAME_OPENED
+FILE_NO_EA_KNOWLEDGE
+FILE_NO_INTERMEDIATE_BUFFERING
+FILE_NON_DIRECTORY_FILE
+FILE_OPEN
+FILE_OPEN_BY_FILE_ID
+FILE_OPEN_FOR_BACKUP_INTENT
+FILE_OPEN_FOR_FREE_SPACE_QUERY
+FILE_OPEN_IF
+FILE_OPEN_REPARSE_POINT
+FILE_OPEN_REQUIRING_OPLOCK
+FILE_OVERWRITE
+FILE_OVERWRITE_IF
+FILE_RANDOM_ACCESS
+FILE_READ_ATTRIBUTES
+FILE_READ_DATA
+FILE_READ_EA
+FILE_RENAME_FLAG_POSIX_SEMANTICS
+FILE_RENAME_FLAG_REPLACE_IF_EXISTS
+FILE_RENAME_INFO
+FILE_RESERVE_OPFILTER
+FILE_SEQUENTIAL_ONLY
+FILE_SESSION_AWARE
+FILE_SHARE_DELETE
+FILE_SHARE_MODE
+FILE_SHARE_NONE
+FILE_SHARE_READ
+FILE_SHARE_WRITE
+FILE_STANDARD_INFO
+FILE_SUPERSEDE
+FILE_SYNCHRONOUS_IO_ALERT
+FILE_SYNCHRONOUS_IO_NONALERT
+FILE_TRAVERSE
+FILE_TYPE
+FILE_TYPE_CHAR
+FILE_TYPE_DISK
+FILE_TYPE_PIPE
+FILE_TYPE_REMOTE
+FILE_TYPE_UNKNOWN
+FILE_WRITE_ATTRIBUTES
+FILE_WRITE_DATA
+FILE_WRITE_EA
+FILE_WRITE_THROUGH
+FileAlignmentInfo
+FileAllocationInfo
+FileAttributeTagInfo
+FileBasicInfo
+FileCaseSensitiveInfo
+FileCompressionInfo
+FileDispositionInfo
+FileDispositionInfoEx
+FileEndOfFileInfo
+FileFullDirectoryInfo
+FileFullDirectoryRestartInfo
+FileIdBothDirectoryInfo
+FileIdBothDirectoryRestartInfo
+FileIdExtdDirectoryInfo
+FileIdExtdDirectoryRestartInfo
+FileIdInfo
+FileIoPriorityHintInfo
+FileNameInfo
+FileNormalizedNameInfo
+FileRemoteProtocolInfo
+FileRenameInfo
+FileRenameInfoEx
+FileStandardInfo
+FileStorageInfo
+FileStreamInfo
+FILETIME
+FindClose
+FindExInfoBasic
+FindExSearchNameMatch
+FindFirstFileExW
+FindNextFileW
+FIONBIO
+FlushFileBuffers
+FORMAT_MESSAGE_ALLOCATE_BUFFER
+FORMAT_MESSAGE_ARGUMENT_ARRAY
+FORMAT_MESSAGE_FROM_HMODULE
+FORMAT_MESSAGE_FROM_STRING
+FORMAT_MESSAGE_FROM_SYSTEM
+FORMAT_MESSAGE_IGNORE_INSERTS
+FORMAT_MESSAGE_OPTIONS
+FormatMessageW
+freeaddrinfo
+FreeEnvironmentStringsW
+FRS_ERR_SYSVOL_POPULATE_TIMEOUT
+FSCTL_GET_REPARSE_POINT
+FSCTL_SET_REPARSE_POINT
+GENERIC_ACCESS_RIGHTS
+GENERIC_ALL
+GENERIC_EXECUTE
+GENERIC_READ
+GENERIC_WRITE
+GetActiveProcessorCount
+getaddrinfo
+GetCommandLineW
+GetConsoleMode
+GetConsoleOutputCP
+GetCurrentDirectoryW
+GetCurrentProcess
+GetCurrentProcessId
+GetCurrentThread
+GetEnvironmentStringsW
+GetEnvironmentVariableW
+GetExitCodeProcess
+GetFileAttributesW
+GetFileInformationByHandle
+GetFileInformationByHandleEx
+GetFileType
+GETFINALPATHNAMEBYHANDLE_FLAGS
+GetFinalPathNameByHandleW
+GetFullPathNameW
+GetLastError
+GetModuleFileNameW
+GetModuleHandleA
+GetModuleHandleW
+GetOverlappedResult
+getpeername
+GetProcAddress
+GetProcessId
+getsockname
+getsockopt
+GetStdHandle
+GetSystemDirectoryW
+GetSystemInfo
+GetSystemTimeAsFileTime
+GetSystemTimePreciseAsFileTime
+GetTempPathW
+GetUserProfileDirectoryW
+GetWindowsDirectoryW
+HANDLE
+HANDLE_FLAG_INHERIT
+HANDLE_FLAG_PROTECT_FROM_CLOSE
+HANDLE_FLAGS
+HIGH_PRIORITY_CLASS
+HMODULE
+IDLE_PRIORITY_CLASS
+IN6_ADDR
+IN_ADDR
+INFINITE
+INHERIT_CALLER_PRIORITY
+INHERIT_PARENT_AFFINITY
+INIT_ONCE_INIT_FAILED
+InitializeProcThreadAttributeList
+InitOnceBeginInitialize
+InitOnceComplete
+INVALID_FILE_ATTRIBUTES
+INVALID_SOCKET
+IO_REPARSE_TAG_MOUNT_POINT
+IO_REPARSE_TAG_SYMLINK
+ioctlsocket
+IP_ADD_MEMBERSHIP
+IP_DROP_MEMBERSHIP
+IP_MREQ
+IP_MULTICAST_LOOP
+IP_MULTICAST_TTL
+IP_TTL
+IPPROTO
+IPPROTO_AH
+IPPROTO_CBT
+IPPROTO_DSTOPTS
+IPPROTO_EGP
+IPPROTO_ESP
+IPPROTO_FRAGMENT
+IPPROTO_GGP
+IPPROTO_HOPOPTS
+IPPROTO_ICLFXBM
+IPPROTO_ICMP
+IPPROTO_ICMPV6
+IPPROTO_IDP
+IPPROTO_IGMP
+IPPROTO_IGP
+IPPROTO_IP
+IPPROTO_IPV4
+IPPROTO_IPV6
+IPPROTO_L2TP
+IPPROTO_MAX
+IPPROTO_ND
+IPPROTO_NONE
+IPPROTO_PGM
+IPPROTO_PIM
+IPPROTO_PUP
+IPPROTO_RAW
+IPPROTO_RDP
+IPPROTO_RESERVED_IPSEC
+IPPROTO_RESERVED_IPSECOFFLOAD
+IPPROTO_RESERVED_MAX
+IPPROTO_RESERVED_RAW
+IPPROTO_RESERVED_WNV
+IPPROTO_RM
+IPPROTO_ROUTING
+IPPROTO_SCTP
+IPPROTO_ST
+IPPROTO_TCP
+IPPROTO_UDP
+IPV6_ADD_MEMBERSHIP
+IPV6_DROP_MEMBERSHIP
+IPV6_MREQ
+IPV6_MULTICAST_LOOP
+IPV6_V6ONLY
+LINGER
+listen
+LocalFree
+LOCKFILE_EXCLUSIVE_LOCK
+LOCKFILE_FAIL_IMMEDIATELY
+LockFileEx
+LPOVERLAPPED_COMPLETION_ROUTINE
+LPPROC_THREAD_ATTRIBUTE_LIST
+LPPROGRESS_ROUTINE
+LPPROGRESS_ROUTINE_CALLBACK_REASON
+LPTHREAD_START_ROUTINE
+LPWSAOVERLAPPED_COMPLETION_ROUTINE
+M128A
+MAX_PATH
+MAXIMUM_REPARSE_DATA_BUFFER_SIZE
+MaximumFileInfoByHandleClass
+MB_COMPOSITE
+MB_ERR_INVALID_CHARS
+MB_PRECOMPOSED
+MB_USEGLYPHCHARS
+MOVE_FILE_FLAGS
+MOVEFILE_COPY_ALLOWED
+MOVEFILE_CREATE_HARDLINK
+MOVEFILE_DELAY_UNTIL_REBOOT
+MOVEFILE_FAIL_IF_NOT_TRACKABLE
+MOVEFILE_REPLACE_EXISTING
+MOVEFILE_WRITE_THROUGH
+MoveFileExW
+MSG_DONTROUTE
+MSG_OOB
+MSG_PEEK
+MSG_PUSH_IMMEDIATE
+MSG_WAITALL
+MULTI_BYTE_TO_WIDE_CHAR_FLAGS
+MultiByteToWideChar
+NAMED_PIPE_MODE
+NO_ERROR
+NORMAL_PRIORITY_CLASS
+NtCreateFile
+NTCREATEFILE_CREATE_DISPOSITION
+NTCREATEFILE_CREATE_OPTIONS
+NtOpenFile
+NtReadFile
+NTSTATUS
+NtWriteFile
+OBJ_DONT_REPARSE
+OPEN_ALWAYS
+OPEN_EXISTING
+OpenProcessToken
+OVERLAPPED
+PIPE_ACCEPT_REMOTE_CLIENTS
+PIPE_ACCESS_DUPLEX
+PIPE_ACCESS_INBOUND
+PIPE_ACCESS_OUTBOUND
+PIPE_CLIENT_END
+PIPE_NOWAIT
+PIPE_READMODE_BYTE
+PIPE_READMODE_MESSAGE
+PIPE_REJECT_REMOTE_CLIENTS
+PIPE_SERVER_END
+PIPE_TYPE_BYTE
+PIPE_TYPE_MESSAGE
+PIPE_WAIT
+PROCESS_CREATION_FLAGS
+PROCESS_INFORMATION
+PROCESS_MODE_BACKGROUND_BEGIN
+PROCESS_MODE_BACKGROUND_END
+PROCESSOR_ARCHITECTURE
+PROFILE_KERNEL
+PROFILE_SERVER
+PROFILE_USER
+PROGRESS_CONTINUE
+QueryPerformanceCounter
+QueryPerformanceFrequency
+READ_CONTROL
+ReadConsoleW
+ReadFile
+ReadFileEx
+REALTIME_PRIORITY_CLASS
+recv
+recvfrom
+ReleaseSRWLockExclusive
+ReleaseSRWLockShared
+RemoveDirectoryW
+RtlGenRandom
+RtlNtStatusToDosError
+SD_BOTH
+SD_RECEIVE
+SD_SEND
+SECURITY_ANONYMOUS
+SECURITY_ATTRIBUTES
+SECURITY_CONTEXT_TRACKING
+SECURITY_DELEGATION
+SECURITY_EFFECTIVE_ONLY
+SECURITY_IDENTIFICATION
+SECURITY_IMPERSONATION
+SECURITY_SQOS_PRESENT
+SECURITY_VALID_SQOS_FLAGS
+select
+send
+SEND_RECV_FLAGS
+sendto
+SET_FILE_POINTER_MOVE_METHOD
+SetCurrentDirectoryW
+SetEnvironmentVariableW
+SetFileAttributesW
+SetFileInformationByHandle
+SetFilePointerEx
+SetFileTime
+SetHandleInformation
+SetLastError
+setsockopt
+SetThreadStackGuarantee
+SetWaitableTimer
+shutdown
+Sleep
+SleepConditionVariableSRW
+SleepEx
+SO_BROADCAST
+SO_ERROR
+SO_LINGER
+SO_RCVTIMEO
+SO_SNDTIMEO
+SOCK_DGRAM
+SOCK_RAW
+SOCK_RDM
+SOCK_SEQPACKET
+SOCK_STREAM
+SOCKADDR
+SOCKADDR_STORAGE
+SOCKADDR_UN
+SOCKET
+SOCKET_ERROR
+SOL_SOCKET
+SPECIFIC_RIGHTS_ALL
+STACK_SIZE_PARAM_IS_A_RESERVATION
+STANDARD_RIGHTS_ALL
+STANDARD_RIGHTS_EXECUTE
+STANDARD_RIGHTS_READ
+STANDARD_RIGHTS_REQUIRED
+STANDARD_RIGHTS_WRITE
+STARTF_FORCEOFFFEEDBACK
+STARTF_FORCEONFEEDBACK
+STARTF_PREVENTPINNING
+STARTF_RUNFULLSCREEN
+STARTF_TITLEISAPPID
+STARTF_TITLEISLINKNAME
+STARTF_UNTRUSTEDSOURCE
+STARTF_USECOUNTCHARS
+STARTF_USEFILLATTRIBUTE
+STARTF_USEHOTKEY
+STARTF_USEPOSITION
+STARTF_USESHOWWINDOW
+STARTF_USESIZE
+STARTF_USESTDHANDLES
+STARTUPINFOEXW
+STARTUPINFOW
+STARTUPINFOW_FLAGS
+STATUS_DELETE_PENDING
+STATUS_DIRECTORY_NOT_EMPTY
+STATUS_END_OF_FILE
+STATUS_FILE_DELETED
+STATUS_INVALID_HANDLE
+STATUS_INVALID_PARAMETER
+STATUS_NOT_IMPLEMENTED
+STATUS_PENDING
+STATUS_SHARING_VIOLATION
+STATUS_SUCCESS
+STD_ERROR_HANDLE
+STD_HANDLE
+STD_INPUT_HANDLE
+STD_OUTPUT_HANDLE
+SwitchToThread
+SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
+SYMBOLIC_LINK_FLAG_DIRECTORY
+SYMBOLIC_LINK_FLAGS
+SYMLINK_FLAG_RELATIVE
+SYNCHRONIZE
+SYSTEM_INFO
+TCP_NODELAY
+TerminateProcess
+THREAD_CREATE_RUN_IMMEDIATELY
+THREAD_CREATE_SUSPENDED
+THREAD_CREATION_FLAGS
+TIMER_ALL_ACCESS
+TIMER_MODIFY_STATE
+TIMEVAL
+TLS_OUT_OF_INDEXES
+TlsAlloc
+TlsFree
+TlsGetValue
+TlsSetValue
+TOKEN_ACCESS_MASK
+TOKEN_ACCESS_PSEUDO_HANDLE
+TOKEN_ACCESS_PSEUDO_HANDLE_WIN8
+TOKEN_ACCESS_SYSTEM_SECURITY
+TOKEN_ADJUST_DEFAULT
+TOKEN_ADJUST_GROUPS
+TOKEN_ADJUST_PRIVILEGES
+TOKEN_ADJUST_SESSIONID
+TOKEN_ALL_ACCESS
+TOKEN_ASSIGN_PRIMARY
+TOKEN_DELETE
+TOKEN_DUPLICATE
+TOKEN_EXECUTE
+TOKEN_IMPERSONATE
+TOKEN_QUERY
+TOKEN_QUERY_SOURCE
+TOKEN_READ
+TOKEN_READ_CONTROL
+TOKEN_TRUST_CONSTRAINT_MASK
+TOKEN_WRITE
+TOKEN_WRITE_DAC
+TOKEN_WRITE_OWNER
+TRUE
+TRUNCATE_EXISTING
+TryAcquireSRWLockExclusive
+TryAcquireSRWLockShared
+UNICODE_STRING
+UnlockFile
+UpdateProcThreadAttribute
+VOLUME_NAME_DOS
+VOLUME_NAME_GUID
+VOLUME_NAME_NONE
+WAIT_ABANDONED
+WAIT_ABANDONED_0
+WAIT_FAILED
+WAIT_IO_COMPLETION
+WAIT_OBJECT_0
+WAIT_TIMEOUT
+WaitForMultipleObjects
+WaitForSingleObject
+WakeAllConditionVariable
+WakeConditionVariable
+WC_ERR_INVALID_CHARS
+WideCharToMultiByte
+WIN32_ERROR
+WIN32_FIND_DATAW
Windows.Wdk.Storage.FileSystem.FILE_NO_COMPRESSION
-Windows.Wdk.Storage.FileSystem.FILE_NO_EA_KNOWLEDGE
-Windows.Wdk.Storage.FileSystem.FILE_NO_INTERMEDIATE_BUFFERING
-Windows.Wdk.Storage.FileSystem.FILE_NON_DIRECTORY_FILE
-Windows.Wdk.Storage.FileSystem.FILE_OPEN
-Windows.Wdk.Storage.FileSystem.FILE_OPEN_BY_FILE_ID
-Windows.Wdk.Storage.FileSystem.FILE_OPEN_FOR_BACKUP_INTENT
-Windows.Wdk.Storage.FileSystem.FILE_OPEN_FOR_FREE_SPACE_QUERY
-Windows.Wdk.Storage.FileSystem.FILE_OPEN_IF
Windows.Wdk.Storage.FileSystem.FILE_OPEN_NO_RECALL
-Windows.Wdk.Storage.FileSystem.FILE_OPEN_REPARSE_POINT
-Windows.Wdk.Storage.FileSystem.FILE_OPEN_REQUIRING_OPLOCK
-Windows.Wdk.Storage.FileSystem.FILE_OVERWRITE
-Windows.Wdk.Storage.FileSystem.FILE_OVERWRITE_IF
-Windows.Wdk.Storage.FileSystem.FILE_RANDOM_ACCESS
-Windows.Wdk.Storage.FileSystem.FILE_RESERVE_OPFILTER
-Windows.Wdk.Storage.FileSystem.FILE_SEQUENTIAL_ONLY
-Windows.Wdk.Storage.FileSystem.FILE_SESSION_AWARE
-Windows.Wdk.Storage.FileSystem.FILE_SUPERSEDE
-Windows.Wdk.Storage.FileSystem.FILE_SYNCHRONOUS_IO_ALERT
-Windows.Wdk.Storage.FileSystem.FILE_SYNCHRONOUS_IO_NONALERT
-Windows.Wdk.Storage.FileSystem.FILE_WRITE_THROUGH
-Windows.Wdk.Storage.FileSystem.NtCreateFile
-Windows.Wdk.Storage.FileSystem.NTCREATEFILE_CREATE_DISPOSITION
-Windows.Wdk.Storage.FileSystem.NTCREATEFILE_CREATE_OPTIONS
-Windows.Wdk.Storage.FileSystem.NtOpenFile
-Windows.Wdk.Storage.FileSystem.NtReadFile
-Windows.Wdk.Storage.FileSystem.NtWriteFile
-Windows.Wdk.Storage.FileSystem.SYMLINK_FLAG_RELATIVE
-Windows.Win32.Foundation.BOOL
-Windows.Win32.Foundation.BOOLEAN
-Windows.Win32.Foundation.CloseHandle
-Windows.Win32.Foundation.DNS_ERROR_ADDRESS_REQUIRED
-Windows.Win32.Foundation.DNS_ERROR_ALIAS_LOOP
-Windows.Win32.Foundation.DNS_ERROR_AUTOZONE_ALREADY_EXISTS
-Windows.Win32.Foundation.DNS_ERROR_AXFR
-Windows.Win32.Foundation.DNS_ERROR_BACKGROUND_LOADING
-Windows.Win32.Foundation.DNS_ERROR_BAD_KEYMASTER
-Windows.Win32.Foundation.DNS_ERROR_BAD_PACKET
-Windows.Win32.Foundation.DNS_ERROR_CANNOT_FIND_ROOT_HINTS
-Windows.Win32.Foundation.DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS
-Windows.Win32.Foundation.DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST
-Windows.Win32.Foundation.DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED
-Windows.Win32.Foundation.DNS_ERROR_CNAME_COLLISION
-Windows.Win32.Foundation.DNS_ERROR_CNAME_LOOP
-Windows.Win32.Foundation.DNS_ERROR_DATAFILE_OPEN_FAILURE
-Windows.Win32.Foundation.DNS_ERROR_DATAFILE_PARSING
-Windows.Win32.Foundation.DNS_ERROR_DEFAULT_SCOPE
-Windows.Win32.Foundation.DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE
-Windows.Win32.Foundation.DNS_ERROR_DEFAULT_ZONESCOPE
-Windows.Win32.Foundation.DNS_ERROR_DELEGATION_REQUIRED
-Windows.Win32.Foundation.DNS_ERROR_DNAME_COLLISION
-Windows.Win32.Foundation.DNS_ERROR_DNSSEC_IS_DISABLED
-Windows.Win32.Foundation.DNS_ERROR_DP_ALREADY_ENLISTED
-Windows.Win32.Foundation.DNS_ERROR_DP_ALREADY_EXISTS
-Windows.Win32.Foundation.DNS_ERROR_DP_DOES_NOT_EXIST
-Windows.Win32.Foundation.DNS_ERROR_DP_FSMO_ERROR
-Windows.Win32.Foundation.DNS_ERROR_DP_NOT_AVAILABLE
-Windows.Win32.Foundation.DNS_ERROR_DP_NOT_ENLISTED
-Windows.Win32.Foundation.DNS_ERROR_DS_UNAVAILABLE
-Windows.Win32.Foundation.DNS_ERROR_DS_ZONE_ALREADY_EXISTS
-Windows.Win32.Foundation.DNS_ERROR_DWORD_VALUE_TOO_LARGE
-Windows.Win32.Foundation.DNS_ERROR_DWORD_VALUE_TOO_SMALL
-Windows.Win32.Foundation.DNS_ERROR_FILE_WRITEBACK_FAILED
-Windows.Win32.Foundation.DNS_ERROR_FORWARDER_ALREADY_EXISTS
-Windows.Win32.Foundation.DNS_ERROR_INCONSISTENT_ROOT_HINTS
-Windows.Win32.Foundation.DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME
-Windows.Win32.Foundation.DNS_ERROR_INVALID_CLIENT_SUBNET_NAME
-Windows.Win32.Foundation.DNS_ERROR_INVALID_DATA
-Windows.Win32.Foundation.DNS_ERROR_INVALID_DATAFILE_NAME
-Windows.Win32.Foundation.DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET
-Windows.Win32.Foundation.DNS_ERROR_INVALID_IP_ADDRESS
-Windows.Win32.Foundation.DNS_ERROR_INVALID_KEY_SIZE
-Windows.Win32.Foundation.DNS_ERROR_INVALID_NAME
-Windows.Win32.Foundation.DNS_ERROR_INVALID_NAME_CHAR
-Windows.Win32.Foundation.DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT
-Windows.Win32.Foundation.DNS_ERROR_INVALID_POLICY_TABLE
-Windows.Win32.Foundation.DNS_ERROR_INVALID_PROPERTY
-Windows.Win32.Foundation.DNS_ERROR_INVALID_ROLLOVER_PERIOD
-Windows.Win32.Foundation.DNS_ERROR_INVALID_SCOPE_NAME
-Windows.Win32.Foundation.DNS_ERROR_INVALID_SCOPE_OPERATION
-Windows.Win32.Foundation.DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD
-Windows.Win32.Foundation.DNS_ERROR_INVALID_TYPE
-Windows.Win32.Foundation.DNS_ERROR_INVALID_XML
-Windows.Win32.Foundation.DNS_ERROR_INVALID_ZONE_OPERATION
-Windows.Win32.Foundation.DNS_ERROR_INVALID_ZONE_TYPE
-Windows.Win32.Foundation.DNS_ERROR_INVALID_ZONESCOPE_NAME
-Windows.Win32.Foundation.DNS_ERROR_KEYMASTER_REQUIRED
-Windows.Win32.Foundation.DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION
-Windows.Win32.Foundation.DNS_ERROR_KSP_NOT_ACCESSIBLE
-Windows.Win32.Foundation.DNS_ERROR_LOAD_ZONESCOPE_FAILED
-Windows.Win32.Foundation.DNS_ERROR_NAME_DOES_NOT_EXIST
-Windows.Win32.Foundation.DNS_ERROR_NAME_NOT_IN_ZONE
-Windows.Win32.Foundation.DNS_ERROR_NBSTAT_INIT_FAILED
-Windows.Win32.Foundation.DNS_ERROR_NEED_SECONDARY_ADDRESSES
-Windows.Win32.Foundation.DNS_ERROR_NEED_WINS_SERVERS
-Windows.Win32.Foundation.DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE
-Windows.Win32.Foundation.DNS_ERROR_NO_CREATE_CACHE_DATA
-Windows.Win32.Foundation.DNS_ERROR_NO_DNS_SERVERS
-Windows.Win32.Foundation.DNS_ERROR_NO_MEMORY
-Windows.Win32.Foundation.DNS_ERROR_NO_PACKET
-Windows.Win32.Foundation.DNS_ERROR_NO_TCPIP
-Windows.Win32.Foundation.DNS_ERROR_NO_VALID_TRUST_ANCHORS
-Windows.Win32.Foundation.DNS_ERROR_NO_ZONE_INFO
-Windows.Win32.Foundation.DNS_ERROR_NODE_CREATION_FAILED
-Windows.Win32.Foundation.DNS_ERROR_NODE_IS_CNAME
-Windows.Win32.Foundation.DNS_ERROR_NODE_IS_DNAME
-Windows.Win32.Foundation.DNS_ERROR_NON_RFC_NAME
-Windows.Win32.Foundation.DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD
-Windows.Win32.Foundation.DNS_ERROR_NOT_ALLOWED_ON_RODC
-Windows.Win32.Foundation.DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER
-Windows.Win32.Foundation.DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE
-Windows.Win32.Foundation.DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE
-Windows.Win32.Foundation.DNS_ERROR_NOT_ALLOWED_ON_ZSK
-Windows.Win32.Foundation.DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION
-Windows.Win32.Foundation.DNS_ERROR_NOT_ALLOWED_UNDER_DNAME
-Windows.Win32.Foundation.DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES
-Windows.Win32.Foundation.DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS
-Windows.Win32.Foundation.DNS_ERROR_NOT_UNIQUE
-Windows.Win32.Foundation.DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1
-Windows.Win32.Foundation.DNS_ERROR_NSEC3_NAME_COLLISION
-Windows.Win32.Foundation.DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1
-Windows.Win32.Foundation.DNS_ERROR_NUMERIC_NAME
-Windows.Win32.Foundation.DNS_ERROR_POLICY_ALREADY_EXISTS
-Windows.Win32.Foundation.DNS_ERROR_POLICY_DOES_NOT_EXIST
-Windows.Win32.Foundation.DNS_ERROR_POLICY_INVALID_CRITERIA
-Windows.Win32.Foundation.DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET
-Windows.Win32.Foundation.DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN
-Windows.Win32.Foundation.DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE
-Windows.Win32.Foundation.DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL
-Windows.Win32.Foundation.DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE
-Windows.Win32.Foundation.DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY
-Windows.Win32.Foundation.DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL
-Windows.Win32.Foundation.DNS_ERROR_POLICY_INVALID_NAME
-Windows.Win32.Foundation.DNS_ERROR_POLICY_INVALID_SETTINGS
-Windows.Win32.Foundation.DNS_ERROR_POLICY_INVALID_WEIGHT
-Windows.Win32.Foundation.DNS_ERROR_POLICY_LOCKED
-Windows.Win32.Foundation.DNS_ERROR_POLICY_MISSING_CRITERIA
-Windows.Win32.Foundation.DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID
-Windows.Win32.Foundation.DNS_ERROR_POLICY_SCOPE_MISSING
-Windows.Win32.Foundation.DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED
-Windows.Win32.Foundation.DNS_ERROR_PRIMARY_REQUIRES_DATAFILE
-Windows.Win32.Foundation.DNS_ERROR_RCODE
-Windows.Win32.Foundation.DNS_ERROR_RCODE_BADKEY
-Windows.Win32.Foundation.DNS_ERROR_RCODE_BADSIG
-Windows.Win32.Foundation.DNS_ERROR_RCODE_BADTIME
-Windows.Win32.Foundation.DNS_ERROR_RCODE_FORMAT_ERROR
-Windows.Win32.Foundation.DNS_ERROR_RCODE_NAME_ERROR
-Windows.Win32.Foundation.DNS_ERROR_RCODE_NOT_IMPLEMENTED
-Windows.Win32.Foundation.DNS_ERROR_RCODE_NOTAUTH
-Windows.Win32.Foundation.DNS_ERROR_RCODE_NOTZONE
-Windows.Win32.Foundation.DNS_ERROR_RCODE_NXRRSET
-Windows.Win32.Foundation.DNS_ERROR_RCODE_REFUSED
-Windows.Win32.Foundation.DNS_ERROR_RCODE_SERVER_FAILURE
-Windows.Win32.Foundation.DNS_ERROR_RCODE_YXDOMAIN
-Windows.Win32.Foundation.DNS_ERROR_RCODE_YXRRSET
-Windows.Win32.Foundation.DNS_ERROR_RECORD_ALREADY_EXISTS
-Windows.Win32.Foundation.DNS_ERROR_RECORD_DOES_NOT_EXIST
-Windows.Win32.Foundation.DNS_ERROR_RECORD_FORMAT
-Windows.Win32.Foundation.DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT
-Windows.Win32.Foundation.DNS_ERROR_RECORD_TIMED_OUT
-Windows.Win32.Foundation.DNS_ERROR_ROLLOVER_ALREADY_QUEUED
-Windows.Win32.Foundation.DNS_ERROR_ROLLOVER_IN_PROGRESS
-Windows.Win32.Foundation.DNS_ERROR_ROLLOVER_NOT_POKEABLE
-Windows.Win32.Foundation.DNS_ERROR_RRL_INVALID_IPV4_PREFIX
-Windows.Win32.Foundation.DNS_ERROR_RRL_INVALID_IPV6_PREFIX
-Windows.Win32.Foundation.DNS_ERROR_RRL_INVALID_LEAK_RATE
-Windows.Win32.Foundation.DNS_ERROR_RRL_INVALID_TC_RATE
-Windows.Win32.Foundation.DNS_ERROR_RRL_INVALID_WINDOW_SIZE
-Windows.Win32.Foundation.DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE
-Windows.Win32.Foundation.DNS_ERROR_RRL_NOT_ENABLED
-Windows.Win32.Foundation.DNS_ERROR_SCOPE_ALREADY_EXISTS
-Windows.Win32.Foundation.DNS_ERROR_SCOPE_DOES_NOT_EXIST
-Windows.Win32.Foundation.DNS_ERROR_SCOPE_LOCKED
-Windows.Win32.Foundation.DNS_ERROR_SECONDARY_DATA
-Windows.Win32.Foundation.DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP
-Windows.Win32.Foundation.DNS_ERROR_SERVERSCOPE_IS_REFERENCED
-Windows.Win32.Foundation.DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE
-Windows.Win32.Foundation.DNS_ERROR_SOA_DELETE_INVALID
-Windows.Win32.Foundation.DNS_ERROR_STANDBY_KEY_NOT_PRESENT
-Windows.Win32.Foundation.DNS_ERROR_SUBNET_ALREADY_EXISTS
-Windows.Win32.Foundation.DNS_ERROR_SUBNET_DOES_NOT_EXIST
-Windows.Win32.Foundation.DNS_ERROR_TOO_MANY_SKDS
-Windows.Win32.Foundation.DNS_ERROR_TRY_AGAIN_LATER
-Windows.Win32.Foundation.DNS_ERROR_UNEXPECTED_CNG_ERROR
-Windows.Win32.Foundation.DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR
-Windows.Win32.Foundation.DNS_ERROR_UNKNOWN_RECORD_TYPE
-Windows.Win32.Foundation.DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION
-Windows.Win32.Foundation.DNS_ERROR_UNSECURE_PACKET
-Windows.Win32.Foundation.DNS_ERROR_UNSUPPORTED_ALGORITHM
-Windows.Win32.Foundation.DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS
-Windows.Win32.Foundation.DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST
-Windows.Win32.Foundation.DNS_ERROR_VIRTUALIZATION_TREE_LOCKED
-Windows.Win32.Foundation.DNS_ERROR_WINS_INIT_FAILED
-Windows.Win32.Foundation.DNS_ERROR_ZONE_ALREADY_EXISTS
-Windows.Win32.Foundation.DNS_ERROR_ZONE_CONFIGURATION_ERROR
-Windows.Win32.Foundation.DNS_ERROR_ZONE_CREATION_FAILED
-Windows.Win32.Foundation.DNS_ERROR_ZONE_DOES_NOT_EXIST
-Windows.Win32.Foundation.DNS_ERROR_ZONE_HAS_NO_NS_RECORDS
-Windows.Win32.Foundation.DNS_ERROR_ZONE_HAS_NO_SOA_RECORD
-Windows.Win32.Foundation.DNS_ERROR_ZONE_IS_SHUTDOWN
-Windows.Win32.Foundation.DNS_ERROR_ZONE_LOCKED
-Windows.Win32.Foundation.DNS_ERROR_ZONE_LOCKED_FOR_SIGNING
-Windows.Win32.Foundation.DNS_ERROR_ZONE_NOT_SECONDARY
-Windows.Win32.Foundation.DNS_ERROR_ZONE_REQUIRES_MASTER_IP
-Windows.Win32.Foundation.DNS_ERROR_ZONESCOPE_ALREADY_EXISTS
-Windows.Win32.Foundation.DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST
-Windows.Win32.Foundation.DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED
-Windows.Win32.Foundation.DNS_ERROR_ZONESCOPE_IS_REFERENCED
-Windows.Win32.Foundation.DUPLICATE_CLOSE_SOURCE
-Windows.Win32.Foundation.DUPLICATE_HANDLE_OPTIONS
-Windows.Win32.Foundation.DUPLICATE_SAME_ACCESS
-Windows.Win32.Foundation.DuplicateHandle
-Windows.Win32.Foundation.E_NOTIMPL
-Windows.Win32.Foundation.ERROR_ABANDON_HIBERFILE
-Windows.Win32.Foundation.ERROR_ABANDONED_WAIT_0
-Windows.Win32.Foundation.ERROR_ABANDONED_WAIT_63
-Windows.Win32.Foundation.ERROR_ABIOS_ERROR
-Windows.Win32.Foundation.ERROR_ACCESS_AUDIT_BY_POLICY
-Windows.Win32.Foundation.ERROR_ACCESS_DENIED
-Windows.Win32.Foundation.ERROR_ACCESS_DENIED_APPDATA
-Windows.Win32.Foundation.ERROR_ACCESS_DISABLED_BY_POLICY
-Windows.Win32.Foundation.ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY
-Windows.Win32.Foundation.ERROR_ACCESS_DISABLED_WEBBLADE
-Windows.Win32.Foundation.ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER
-Windows.Win32.Foundation.ERROR_ACCOUNT_DISABLED
-Windows.Win32.Foundation.ERROR_ACCOUNT_EXPIRED
-Windows.Win32.Foundation.ERROR_ACCOUNT_LOCKED_OUT
-Windows.Win32.Foundation.ERROR_ACCOUNT_RESTRICTION
-Windows.Win32.Foundation.ERROR_ACPI_ERROR
-Windows.Win32.Foundation.ERROR_ACTIVE_CONNECTIONS
-Windows.Win32.Foundation.ERROR_ADAP_HDW_ERR
-Windows.Win32.Foundation.ERROR_ADDRESS_ALREADY_ASSOCIATED
-Windows.Win32.Foundation.ERROR_ADDRESS_NOT_ASSOCIATED
-Windows.Win32.Foundation.ERROR_ALERTED
-Windows.Win32.Foundation.ERROR_ALIAS_EXISTS
-Windows.Win32.Foundation.ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED
-Windows.Win32.Foundation.ERROR_ALLOCATE_BUCKET
-Windows.Win32.Foundation.ERROR_ALLOTTED_SPACE_EXCEEDED
-Windows.Win32.Foundation.ERROR_ALREADY_ASSIGNED
-Windows.Win32.Foundation.ERROR_ALREADY_EXISTS
-Windows.Win32.Foundation.ERROR_ALREADY_FIBER
-Windows.Win32.Foundation.ERROR_ALREADY_HAS_STREAM_ID
-Windows.Win32.Foundation.ERROR_ALREADY_INITIALIZED
-Windows.Win32.Foundation.ERROR_ALREADY_REGISTERED
-Windows.Win32.Foundation.ERROR_ALREADY_RUNNING_LKG
-Windows.Win32.Foundation.ERROR_ALREADY_THREAD
-Windows.Win32.Foundation.ERROR_ALREADY_WAITING
-Windows.Win32.Foundation.ERROR_ALREADY_WIN32
-Windows.Win32.Foundation.ERROR_API_UNAVAILABLE
-Windows.Win32.Foundation.ERROR_APP_HANG
-Windows.Win32.Foundation.ERROR_APP_INIT_FAILURE
-Windows.Win32.Foundation.ERROR_APP_WRONG_OS
-Windows.Win32.Foundation.ERROR_APPCONTAINER_REQUIRED
-Windows.Win32.Foundation.ERROR_APPEXEC_APP_COMPAT_BLOCK
-Windows.Win32.Foundation.ERROR_APPEXEC_CALLER_WAIT_TIMEOUT
-Windows.Win32.Foundation.ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_LICENSING
-Windows.Win32.Foundation.ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_RESOURCES
-Windows.Win32.Foundation.ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_TERMINATION
-Windows.Win32.Foundation.ERROR_APPEXEC_CONDITION_NOT_SATISFIED
-Windows.Win32.Foundation.ERROR_APPEXEC_HANDLE_INVALIDATED
-Windows.Win32.Foundation.ERROR_APPEXEC_HOST_ID_MISMATCH
-Windows.Win32.Foundation.ERROR_APPEXEC_INVALID_HOST_GENERATION
-Windows.Win32.Foundation.ERROR_APPEXEC_INVALID_HOST_STATE
-Windows.Win32.Foundation.ERROR_APPEXEC_NO_DONOR
-Windows.Win32.Foundation.ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION
-Windows.Win32.Foundation.ERROR_APPEXEC_UNKNOWN_USER
-Windows.Win32.Foundation.ERROR_APPHELP_BLOCK
-Windows.Win32.Foundation.ERROR_APPX_FILE_NOT_ENCRYPTED
-Windows.Win32.Foundation.ERROR_ARBITRATION_UNHANDLED
-Windows.Win32.Foundation.ERROR_ARENA_TRASHED
-Windows.Win32.Foundation.ERROR_ARITHMETIC_OVERFLOW
-Windows.Win32.Foundation.ERROR_ASSERTION_FAILURE
-Windows.Win32.Foundation.ERROR_ATOMIC_LOCKS_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_AUDIT_FAILED
-Windows.Win32.Foundation.ERROR_AUTHENTICATION_FIREWALL_FAILED
-Windows.Win32.Foundation.ERROR_AUTHIP_FAILURE
-Windows.Win32.Foundation.ERROR_AUTODATASEG_EXCEEDS_64k
-Windows.Win32.Foundation.ERROR_BACKUP_CONTROLLER
-Windows.Win32.Foundation.ERROR_BAD_ACCESSOR_FLAGS
-Windows.Win32.Foundation.ERROR_BAD_ARGUMENTS
-Windows.Win32.Foundation.ERROR_BAD_COMMAND
-Windows.Win32.Foundation.ERROR_BAD_COMPRESSION_BUFFER
-Windows.Win32.Foundation.ERROR_BAD_CONFIGURATION
-Windows.Win32.Foundation.ERROR_BAD_CURRENT_DIRECTORY
-Windows.Win32.Foundation.ERROR_BAD_DESCRIPTOR_FORMAT
-Windows.Win32.Foundation.ERROR_BAD_DEV_TYPE
-Windows.Win32.Foundation.ERROR_BAD_DEVICE
-Windows.Win32.Foundation.ERROR_BAD_DEVICE_PATH
-Windows.Win32.Foundation.ERROR_BAD_DLL_ENTRYPOINT
-Windows.Win32.Foundation.ERROR_BAD_DRIVER_LEVEL
-Windows.Win32.Foundation.ERROR_BAD_ENVIRONMENT
-Windows.Win32.Foundation.ERROR_BAD_EXE_FORMAT
-Windows.Win32.Foundation.ERROR_BAD_FILE_TYPE
-Windows.Win32.Foundation.ERROR_BAD_FORMAT
-Windows.Win32.Foundation.ERROR_BAD_FUNCTION_TABLE
-Windows.Win32.Foundation.ERROR_BAD_IMPERSONATION_LEVEL
-Windows.Win32.Foundation.ERROR_BAD_INHERITANCE_ACL
-Windows.Win32.Foundation.ERROR_BAD_LENGTH
-Windows.Win32.Foundation.ERROR_BAD_LOGON_SESSION_STATE
-Windows.Win32.Foundation.ERROR_BAD_MCFG_TABLE
-Windows.Win32.Foundation.ERROR_BAD_NET_NAME
-Windows.Win32.Foundation.ERROR_BAD_NET_RESP
-Windows.Win32.Foundation.ERROR_BAD_NETPATH
-Windows.Win32.Foundation.ERROR_BAD_PATHNAME
-Windows.Win32.Foundation.ERROR_BAD_PIPE
-Windows.Win32.Foundation.ERROR_BAD_PROFILE
-Windows.Win32.Foundation.ERROR_BAD_PROVIDER
-Windows.Win32.Foundation.ERROR_BAD_QUERY_SYNTAX
-Windows.Win32.Foundation.ERROR_BAD_RECOVERY_POLICY
-Windows.Win32.Foundation.ERROR_BAD_REM_ADAP
-Windows.Win32.Foundation.ERROR_BAD_SERVICE_ENTRYPOINT
-Windows.Win32.Foundation.ERROR_BAD_STACK
-Windows.Win32.Foundation.ERROR_BAD_THREADID_ADDR
-Windows.Win32.Foundation.ERROR_BAD_TOKEN_TYPE
-Windows.Win32.Foundation.ERROR_BAD_UNIT
-Windows.Win32.Foundation.ERROR_BAD_USER_PROFILE
-Windows.Win32.Foundation.ERROR_BAD_USERNAME
-Windows.Win32.Foundation.ERROR_BAD_VALIDATION_CLASS
-Windows.Win32.Foundation.ERROR_BADDB
-Windows.Win32.Foundation.ERROR_BADKEY
-Windows.Win32.Foundation.ERROR_BADSTARTPOSITION
-Windows.Win32.Foundation.ERROR_BEGINNING_OF_MEDIA
-Windows.Win32.Foundation.ERROR_BEYOND_VDL
-Windows.Win32.Foundation.ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT
-Windows.Win32.Foundation.ERROR_BLOCK_SHARED
-Windows.Win32.Foundation.ERROR_BLOCK_SOURCE_WEAK_REFERENCE_INVALID
-Windows.Win32.Foundation.ERROR_BLOCK_TARGET_WEAK_REFERENCE_INVALID
-Windows.Win32.Foundation.ERROR_BLOCK_TOO_MANY_REFERENCES
-Windows.Win32.Foundation.ERROR_BLOCK_WEAK_REFERENCE_INVALID
-Windows.Win32.Foundation.ERROR_BLOCKED_BY_PARENTAL_CONTROLS
-Windows.Win32.Foundation.ERROR_BOOT_ALREADY_ACCEPTED
-Windows.Win32.Foundation.ERROR_BROKEN_PIPE
-Windows.Win32.Foundation.ERROR_BUFFER_ALL_ZEROS
-Windows.Win32.Foundation.ERROR_BUFFER_OVERFLOW
-Windows.Win32.Foundation.ERROR_BUS_RESET
-Windows.Win32.Foundation.ERROR_BUSY
-Windows.Win32.Foundation.ERROR_BUSY_DRIVE
-Windows.Win32.Foundation.ERROR_BYPASSIO_FLT_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_CACHE_PAGE_LOCKED
-Windows.Win32.Foundation.ERROR_CALL_NOT_IMPLEMENTED
-Windows.Win32.Foundation.ERROR_CALLBACK_INVOKE_INLINE
-Windows.Win32.Foundation.ERROR_CALLBACK_POP_STACK
-Windows.Win32.Foundation.ERROR_CALLBACK_SUPPLIED_INVALID_DATA
-Windows.Win32.Foundation.ERROR_CAN_NOT_COMPLETE
-Windows.Win32.Foundation.ERROR_CANCEL_VIOLATION
-Windows.Win32.Foundation.ERROR_CANCELLED
-Windows.Win32.Foundation.ERROR_CANNOT_BREAK_OPLOCK
-Windows.Win32.Foundation.ERROR_CANNOT_COPY
-Windows.Win32.Foundation.ERROR_CANNOT_DETECT_DRIVER_FAILURE
-Windows.Win32.Foundation.ERROR_CANNOT_DETECT_PROCESS_ABORT
-Windows.Win32.Foundation.ERROR_CANNOT_FIND_WND_CLASS
-Windows.Win32.Foundation.ERROR_CANNOT_GRANT_REQUESTED_OPLOCK
-Windows.Win32.Foundation.ERROR_CANNOT_IMPERSONATE
-Windows.Win32.Foundation.ERROR_CANNOT_LOAD_REGISTRY_FILE
-Windows.Win32.Foundation.ERROR_CANNOT_MAKE
-Windows.Win32.Foundation.ERROR_CANNOT_OPEN_PROFILE
-Windows.Win32.Foundation.ERROR_CANT_ACCESS_DOMAIN_INFO
-Windows.Win32.Foundation.ERROR_CANT_ACCESS_FILE
-Windows.Win32.Foundation.ERROR_CANT_CLEAR_ENCRYPTION_FLAG
-Windows.Win32.Foundation.ERROR_CANT_DISABLE_MANDATORY
-Windows.Win32.Foundation.ERROR_CANT_ENABLE_DENY_ONLY
-Windows.Win32.Foundation.ERROR_CANT_OPEN_ANONYMOUS
-Windows.Win32.Foundation.ERROR_CANT_RESOLVE_FILENAME
-Windows.Win32.Foundation.ERROR_CANT_TERMINATE_SELF
-Windows.Win32.Foundation.ERROR_CANT_WAIT
-Windows.Win32.Foundation.ERROR_CANTFETCHBACKWARDS
-Windows.Win32.Foundation.ERROR_CANTOPEN
-Windows.Win32.Foundation.ERROR_CANTREAD
-Windows.Win32.Foundation.ERROR_CANTSCROLLBACKWARDS
-Windows.Win32.Foundation.ERROR_CANTWRITE
-Windows.Win32.Foundation.ERROR_CAPAUTHZ_CHANGE_TYPE
-Windows.Win32.Foundation.ERROR_CAPAUTHZ_DB_CORRUPTED
-Windows.Win32.Foundation.ERROR_CAPAUTHZ_NO_POLICY
-Windows.Win32.Foundation.ERROR_CAPAUTHZ_NOT_AUTHORIZED
-Windows.Win32.Foundation.ERROR_CAPAUTHZ_NOT_DEVUNLOCKED
-Windows.Win32.Foundation.ERROR_CAPAUTHZ_NOT_PROVISIONED
-Windows.Win32.Foundation.ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED
-Windows.Win32.Foundation.ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG
-Windows.Win32.Foundation.ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY
-Windows.Win32.Foundation.ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH
-Windows.Win32.Foundation.ERROR_CAPAUTHZ_SCCD_PARSE_ERROR
-Windows.Win32.Foundation.ERROR_CARDBUS_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_CASE_DIFFERING_NAMES_IN_DIR
-Windows.Win32.Foundation.ERROR_CASE_SENSITIVE_PATH
-Windows.Win32.Foundation.ERROR_CERTIFICATE_VALIDATION_PREFERENCE_CONFLICT
-Windows.Win32.Foundation.ERROR_CHECKING_FILE_SYSTEM
-Windows.Win32.Foundation.ERROR_CHECKOUT_REQUIRED
-Windows.Win32.Foundation.ERROR_CHILD_MUST_BE_VOLATILE
-Windows.Win32.Foundation.ERROR_CHILD_NOT_COMPLETE
-Windows.Win32.Foundation.ERROR_CHILD_PROCESS_BLOCKED
-Windows.Win32.Foundation.ERROR_CHILD_WINDOW_MENU
-Windows.Win32.Foundation.ERROR_CIMFS_IMAGE_CORRUPT
-Windows.Win32.Foundation.ERROR_CIMFS_IMAGE_VERSION_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_CIRCULAR_DEPENDENCY
-Windows.Win32.Foundation.ERROR_CLASS_ALREADY_EXISTS
-Windows.Win32.Foundation.ERROR_CLASS_DOES_NOT_EXIST
-Windows.Win32.Foundation.ERROR_CLASS_HAS_WINDOWS
-Windows.Win32.Foundation.ERROR_CLIENT_SERVER_PARAMETERS_INVALID
-Windows.Win32.Foundation.ERROR_CLIPBOARD_NOT_OPEN
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_ACCESS_DENIED
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_ALREADY_CONNECTED
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_AUTHENTICATION_FAILED
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_DEHYDRATION_DISALLOWED
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_IN_USE
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_INVALID_REQUEST
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_METADATA_CORRUPT
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_METADATA_TOO_LARGE
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_NOT_IN_SYNC
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_PINNED
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_PROPERTY_CORRUPT
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_PROVIDER_TERMINATED
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_READ_ONLY_VOLUME
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_REQUEST_ABORTED
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_REQUEST_CANCELED
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_REQUEST_TIMEOUT
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_UNSUCCESSFUL
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_US_MESSAGE_TIMEOUT
-Windows.Win32.Foundation.ERROR_CLOUD_FILE_VALIDATION_FAILED
-Windows.Win32.Foundation.ERROR_COMMITMENT_LIMIT
-Windows.Win32.Foundation.ERROR_COMMITMENT_MINIMUM
-Windows.Win32.Foundation.ERROR_COMPRESSED_FILE_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_COMPRESSION_DISABLED
-Windows.Win32.Foundation.ERROR_COMPRESSION_NOT_BENEFICIAL
-Windows.Win32.Foundation.ERROR_CONNECTED_OTHER_PASSWORD
-Windows.Win32.Foundation.ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT
-Windows.Win32.Foundation.ERROR_CONNECTION_ABORTED
-Windows.Win32.Foundation.ERROR_CONNECTION_ACTIVE
-Windows.Win32.Foundation.ERROR_CONNECTION_COUNT_LIMIT
-Windows.Win32.Foundation.ERROR_CONNECTION_INVALID
-Windows.Win32.Foundation.ERROR_CONNECTION_REFUSED
-Windows.Win32.Foundation.ERROR_CONNECTION_UNAVAIL
-Windows.Win32.Foundation.ERROR_CONTAINER_ASSIGNED
-Windows.Win32.Foundation.ERROR_CONTENT_BLOCKED
-Windows.Win32.Foundation.ERROR_CONTEXT_EXPIRED
-Windows.Win32.Foundation.ERROR_CONTINUE
-Windows.Win32.Foundation.ERROR_CONTROL_C_EXIT
-Windows.Win32.Foundation.ERROR_CONTROL_ID_NOT_FOUND
-Windows.Win32.Foundation.ERROR_CONVERT_TO_LARGE
-Windows.Win32.Foundation.ERROR_CORRUPT_LOG_CLEARED
-Windows.Win32.Foundation.ERROR_CORRUPT_LOG_CORRUPTED
-Windows.Win32.Foundation.ERROR_CORRUPT_LOG_DELETED_FULL
-Windows.Win32.Foundation.ERROR_CORRUPT_LOG_OVERFULL
-Windows.Win32.Foundation.ERROR_CORRUPT_LOG_UNAVAILABLE
-Windows.Win32.Foundation.ERROR_CORRUPT_SYSTEM_FILE
-Windows.Win32.Foundation.ERROR_COULD_NOT_INTERPRET
-Windows.Win32.Foundation.ERROR_COUNTER_TIMEOUT
-Windows.Win32.Foundation.ERROR_CPU_SET_INVALID
-Windows.Win32.Foundation.ERROR_CRASH_DUMP
-Windows.Win32.Foundation.ERROR_CRC
-Windows.Win32.Foundation.ERROR_CREATE_FAILED
-Windows.Win32.Foundation.ERROR_CROSS_PARTITION_VIOLATION
-Windows.Win32.Foundation.ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE
-Windows.Win32.Foundation.ERROR_CS_ENCRYPTION_FILE_NOT_CSE
-Windows.Win32.Foundation.ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE
-Windows.Win32.Foundation.ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE
-Windows.Win32.Foundation.ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER
-Windows.Win32.Foundation.ERROR_CSCSHARE_OFFLINE
-Windows.Win32.Foundation.ERROR_CTX_CLIENT_QUERY_TIMEOUT
-Windows.Win32.Foundation.ERROR_CTX_MODEM_RESPONSE_TIMEOUT
-Windows.Win32.Foundation.ERROR_CURRENT_DIRECTORY
-Windows.Win32.Foundation.ERROR_CURRENT_DOMAIN_NOT_ALLOWED
-Windows.Win32.Foundation.ERROR_DATA_CHECKSUM_ERROR
-Windows.Win32.Foundation.ERROR_DATA_NOT_ACCEPTED
-Windows.Win32.Foundation.ERROR_DATABASE_DOES_NOT_EXIST
-Windows.Win32.Foundation.ERROR_DATATYPE_MISMATCH
-Windows.Win32.Foundation.ERROR_DAX_MAPPING_EXISTS
-Windows.Win32.Foundation.ERROR_DBG_COMMAND_EXCEPTION
-Windows.Win32.Foundation.ERROR_DBG_CONTINUE
-Windows.Win32.Foundation.ERROR_DBG_CONTROL_BREAK
-Windows.Win32.Foundation.ERROR_DBG_CONTROL_C
-Windows.Win32.Foundation.ERROR_DBG_EXCEPTION_HANDLED
-Windows.Win32.Foundation.ERROR_DBG_EXCEPTION_NOT_HANDLED
-Windows.Win32.Foundation.ERROR_DBG_PRINTEXCEPTION_C
-Windows.Win32.Foundation.ERROR_DBG_REPLY_LATER
-Windows.Win32.Foundation.ERROR_DBG_RIPEXCEPTION
-Windows.Win32.Foundation.ERROR_DBG_TERMINATE_PROCESS
-Windows.Win32.Foundation.ERROR_DBG_TERMINATE_THREAD
-Windows.Win32.Foundation.ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE
-Windows.Win32.Foundation.ERROR_DC_NOT_FOUND
-Windows.Win32.Foundation.ERROR_DDE_FAIL
-Windows.Win32.Foundation.ERROR_DEBUG_ATTACH_FAILED
-Windows.Win32.Foundation.ERROR_DEBUGGER_INACTIVE
-Windows.Win32.Foundation.ERROR_DECRYPTION_FAILED
-Windows.Win32.Foundation.ERROR_DELAY_LOAD_FAILED
-Windows.Win32.Foundation.ERROR_DELETE_PENDING
-Windows.Win32.Foundation.ERROR_DEPENDENT_SERVICES_RUNNING
-Windows.Win32.Foundation.ERROR_DESTINATION_ELEMENT_FULL
-Windows.Win32.Foundation.ERROR_DESTROY_OBJECT_OF_OTHER_THREAD
-Windows.Win32.Foundation.ERROR_DEV_NOT_EXIST
-Windows.Win32.Foundation.ERROR_DEVICE_ALREADY_ATTACHED
-Windows.Win32.Foundation.ERROR_DEVICE_ALREADY_REMEMBERED
-Windows.Win32.Foundation.ERROR_DEVICE_DOOR_OPEN
-Windows.Win32.Foundation.ERROR_DEVICE_ENUMERATION_ERROR
-Windows.Win32.Foundation.ERROR_DEVICE_FEATURE_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_DEVICE_HARDWARE_ERROR
-Windows.Win32.Foundation.ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL
-Windows.Win32.Foundation.ERROR_DEVICE_IN_MAINTENANCE
-Windows.Win32.Foundation.ERROR_DEVICE_IN_USE
-Windows.Win32.Foundation.ERROR_DEVICE_NO_RESOURCES
-Windows.Win32.Foundation.ERROR_DEVICE_NOT_CONNECTED
-Windows.Win32.Foundation.ERROR_DEVICE_NOT_PARTITIONED
-Windows.Win32.Foundation.ERROR_DEVICE_REINITIALIZATION_NEEDED
-Windows.Win32.Foundation.ERROR_DEVICE_REMOVED
-Windows.Win32.Foundation.ERROR_DEVICE_REQUIRES_CLEANING
-Windows.Win32.Foundation.ERROR_DEVICE_RESET_REQUIRED
-Windows.Win32.Foundation.ERROR_DEVICE_SUPPORT_IN_PROGRESS
-Windows.Win32.Foundation.ERROR_DEVICE_UNREACHABLE
-Windows.Win32.Foundation.ERROR_DHCP_ADDRESS_CONFLICT
-Windows.Win32.Foundation.ERROR_DIFFERENT_SERVICE_ACCOUNT
-Windows.Win32.Foundation.ERROR_DIR_EFS_DISALLOWED
-Windows.Win32.Foundation.ERROR_DIR_NOT_EMPTY
-Windows.Win32.Foundation.ERROR_DIR_NOT_ROOT
-Windows.Win32.Foundation.ERROR_DIRECT_ACCESS_HANDLE
-Windows.Win32.Foundation.ERROR_DIRECTORY
-Windows.Win32.Foundation.ERROR_DIRECTORY_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_DISCARDED
-Windows.Win32.Foundation.ERROR_DISK_CHANGE
-Windows.Win32.Foundation.ERROR_DISK_CORRUPT
-Windows.Win32.Foundation.ERROR_DISK_FULL
-Windows.Win32.Foundation.ERROR_DISK_OPERATION_FAILED
-Windows.Win32.Foundation.ERROR_DISK_QUOTA_EXCEEDED
-Windows.Win32.Foundation.ERROR_DISK_RECALIBRATE_FAILED
-Windows.Win32.Foundation.ERROR_DISK_REPAIR_DISABLED
-Windows.Win32.Foundation.ERROR_DISK_REPAIR_REDIRECTED
-Windows.Win32.Foundation.ERROR_DISK_REPAIR_UNSUCCESSFUL
-Windows.Win32.Foundation.ERROR_DISK_RESET_FAILED
-Windows.Win32.Foundation.ERROR_DISK_RESOURCES_EXHAUSTED
-Windows.Win32.Foundation.ERROR_DISK_TOO_FRAGMENTED
-Windows.Win32.Foundation.ERROR_DLL_INIT_FAILED
-Windows.Win32.Foundation.ERROR_DLL_INIT_FAILED_LOGOFF
-Windows.Win32.Foundation.ERROR_DLL_MIGHT_BE_INCOMPATIBLE
-Windows.Win32.Foundation.ERROR_DLL_MIGHT_BE_INSECURE
-Windows.Win32.Foundation.ERROR_DLL_NOT_FOUND
-Windows.Win32.Foundation.ERROR_DLP_POLICY_DENIES_OPERATION
-Windows.Win32.Foundation.ERROR_DLP_POLICY_SILENTLY_FAIL
-Windows.Win32.Foundation.ERROR_DLP_POLICY_WARNS_AGAINST_OPERATION
-Windows.Win32.Foundation.ERROR_DOMAIN_CONTROLLER_EXISTS
-Windows.Win32.Foundation.ERROR_DOMAIN_CONTROLLER_NOT_FOUND
-Windows.Win32.Foundation.ERROR_DOMAIN_CTRLR_CONFIG_ERROR
-Windows.Win32.Foundation.ERROR_DOMAIN_EXISTS
-Windows.Win32.Foundation.ERROR_DOMAIN_LIMIT_EXCEEDED
-Windows.Win32.Foundation.ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION
-Windows.Win32.Foundation.ERROR_DOMAIN_TRUST_INCONSISTENT
-Windows.Win32.Foundation.ERROR_DOWNGRADE_DETECTED
-Windows.Win32.Foundation.ERROR_DPL_NOT_SUPPORTED_FOR_USER
-Windows.Win32.Foundation.ERROR_DRIVE_LOCKED
-Windows.Win32.Foundation.ERROR_DRIVER_BLOCKED
-Windows.Win32.Foundation.ERROR_DRIVER_CANCEL_TIMEOUT
-Windows.Win32.Foundation.ERROR_DRIVER_DATABASE_ERROR
-Windows.Win32.Foundation.ERROR_DRIVER_FAILED_PRIOR_UNLOAD
-Windows.Win32.Foundation.ERROR_DRIVER_FAILED_SLEEP
-Windows.Win32.Foundation.ERROR_DRIVER_PROCESS_TERMINATED
-Windows.Win32.Foundation.ERROR_DRIVERS_LEAKING_LOCKED_PAGES
-Windows.Win32.Foundation.ERROR_DS_ADD_REPLICA_INHIBITED
-Windows.Win32.Foundation.ERROR_DS_ADMIN_LIMIT_EXCEEDED
-Windows.Win32.Foundation.ERROR_DS_AFFECTS_MULTIPLE_DSAS
-Windows.Win32.Foundation.ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER
-Windows.Win32.Foundation.ERROR_DS_ALIAS_DEREF_PROBLEM
-Windows.Win32.Foundation.ERROR_DS_ALIAS_POINTS_TO_ALIAS
-Windows.Win32.Foundation.ERROR_DS_ALIAS_PROBLEM
-Windows.Win32.Foundation.ERROR_DS_ALIASED_OBJ_MISSING
-Windows.Win32.Foundation.ERROR_DS_ATT_ALREADY_EXISTS
-Windows.Win32.Foundation.ERROR_DS_ATT_IS_NOT_ON_OBJ
-Windows.Win32.Foundation.ERROR_DS_ATT_NOT_DEF_FOR_CLASS
-Windows.Win32.Foundation.ERROR_DS_ATT_NOT_DEF_IN_SCHEMA
-Windows.Win32.Foundation.ERROR_DS_ATT_SCHEMA_REQ_ID
-Windows.Win32.Foundation.ERROR_DS_ATT_SCHEMA_REQ_SYNTAX
-Windows.Win32.Foundation.ERROR_DS_ATT_VAL_ALREADY_EXISTS
-Windows.Win32.Foundation.ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS
-Windows.Win32.Foundation.ERROR_DS_ATTRIBUTE_OWNED_BY_SAM
-Windows.Win32.Foundation.ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED
-Windows.Win32.Foundation.ERROR_DS_AUDIT_FAILURE
-Windows.Win32.Foundation.ERROR_DS_AUTH_METHOD_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_DS_AUTH_UNKNOWN
-Windows.Win32.Foundation.ERROR_DS_AUTHORIZATION_FAILED
-Windows.Win32.Foundation.ERROR_DS_AUX_CLS_TEST_FAIL
-Windows.Win32.Foundation.ERROR_DS_BACKLINK_WITHOUT_LINK
-Windows.Win32.Foundation.ERROR_DS_BAD_ATT_SCHEMA_SYNTAX
-Windows.Win32.Foundation.ERROR_DS_BAD_HIERARCHY_FILE
-Windows.Win32.Foundation.ERROR_DS_BAD_INSTANCE_TYPE
-Windows.Win32.Foundation.ERROR_DS_BAD_NAME_SYNTAX
-Windows.Win32.Foundation.ERROR_DS_BAD_RDN_ATT_ID_SYNTAX
-Windows.Win32.Foundation.ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED
-Windows.Win32.Foundation.ERROR_DS_BUSY
-Windows.Win32.Foundation.ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD
-Windows.Win32.Foundation.ERROR_DS_CANT_ADD_ATT_VALUES
-Windows.Win32.Foundation.ERROR_DS_CANT_ADD_SYSTEM_ONLY
-Windows.Win32.Foundation.ERROR_DS_CANT_ADD_TO_GC
-Windows.Win32.Foundation.ERROR_DS_CANT_CACHE_ATT
-Windows.Win32.Foundation.ERROR_DS_CANT_CACHE_CLASS
-Windows.Win32.Foundation.ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC
-Windows.Win32.Foundation.ERROR_DS_CANT_CREATE_UNDER_SCHEMA
-Windows.Win32.Foundation.ERROR_DS_CANT_DEL_MASTER_CROSSREF
-Windows.Win32.Foundation.ERROR_DS_CANT_DELETE
-Windows.Win32.Foundation.ERROR_DS_CANT_DELETE_DSA_OBJ
-Windows.Win32.Foundation.ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC
-Windows.Win32.Foundation.ERROR_DS_CANT_DEREF_ALIAS
-Windows.Win32.Foundation.ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN
-Windows.Win32.Foundation.ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF
-Windows.Win32.Foundation.ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN
-Windows.Win32.Foundation.ERROR_DS_CANT_FIND_DSA_OBJ
-Windows.Win32.Foundation.ERROR_DS_CANT_FIND_EXPECTED_NC
-Windows.Win32.Foundation.ERROR_DS_CANT_FIND_NC_IN_CACHE
-Windows.Win32.Foundation.ERROR_DS_CANT_MIX_MASTER_AND_REPS
-Windows.Win32.Foundation.ERROR_DS_CANT_MOD_OBJ_CLASS
-Windows.Win32.Foundation.ERROR_DS_CANT_MOD_PRIMARYGROUPID
-Windows.Win32.Foundation.ERROR_DS_CANT_MOD_SYSTEM_ONLY
-Windows.Win32.Foundation.ERROR_DS_CANT_MOVE_ACCOUNT_GROUP
-Windows.Win32.Foundation.ERROR_DS_CANT_MOVE_APP_BASIC_GROUP
-Windows.Win32.Foundation.ERROR_DS_CANT_MOVE_APP_QUERY_GROUP
-Windows.Win32.Foundation.ERROR_DS_CANT_MOVE_DELETED_OBJECT
-Windows.Win32.Foundation.ERROR_DS_CANT_MOVE_RESOURCE_GROUP
-Windows.Win32.Foundation.ERROR_DS_CANT_ON_NON_LEAF
-Windows.Win32.Foundation.ERROR_DS_CANT_ON_RDN
-Windows.Win32.Foundation.ERROR_DS_CANT_REM_MISSING_ATT
-Windows.Win32.Foundation.ERROR_DS_CANT_REM_MISSING_ATT_VAL
-Windows.Win32.Foundation.ERROR_DS_CANT_REMOVE_ATT_CACHE
-Windows.Win32.Foundation.ERROR_DS_CANT_REMOVE_CLASS_CACHE
-Windows.Win32.Foundation.ERROR_DS_CANT_REPLACE_HIDDEN_REC
-Windows.Win32.Foundation.ERROR_DS_CANT_RETRIEVE_ATTS
-Windows.Win32.Foundation.ERROR_DS_CANT_RETRIEVE_CHILD
-Windows.Win32.Foundation.ERROR_DS_CANT_RETRIEVE_DN
-Windows.Win32.Foundation.ERROR_DS_CANT_RETRIEVE_INSTANCE
-Windows.Win32.Foundation.ERROR_DS_CANT_RETRIEVE_SD
-Windows.Win32.Foundation.ERROR_DS_CANT_START
-Windows.Win32.Foundation.ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ
-Windows.Win32.Foundation.ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS
-Windows.Win32.Foundation.ERROR_DS_CHILDREN_EXIST
-Windows.Win32.Foundation.ERROR_DS_CLASS_MUST_BE_CONCRETE
-Windows.Win32.Foundation.ERROR_DS_CLASS_NOT_DSA
-Windows.Win32.Foundation.ERROR_DS_CLIENT_LOOP
-Windows.Win32.Foundation.ERROR_DS_CODE_INCONSISTENCY
-Windows.Win32.Foundation.ERROR_DS_COMPARE_FALSE
-Windows.Win32.Foundation.ERROR_DS_COMPARE_TRUE
-Windows.Win32.Foundation.ERROR_DS_CONFIDENTIALITY_REQUIRED
-Windows.Win32.Foundation.ERROR_DS_CONFIG_PARAM_MISSING
-Windows.Win32.Foundation.ERROR_DS_CONSTRAINT_VIOLATION
-Windows.Win32.Foundation.ERROR_DS_CONSTRUCTED_ATT_MOD
-Windows.Win32.Foundation.ERROR_DS_CONTROL_NOT_FOUND
-Windows.Win32.Foundation.ERROR_DS_COULDNT_CONTACT_FSMO
-Windows.Win32.Foundation.ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE
-Windows.Win32.Foundation.ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE
-Windows.Win32.Foundation.ERROR_DS_COULDNT_UPDATE_SPNS
-Windows.Win32.Foundation.ERROR_DS_COUNTING_AB_INDICES_FAILED
-Windows.Win32.Foundation.ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE
-Windows.Win32.Foundation.ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2
-Windows.Win32.Foundation.ERROR_DS_CROSS_DOM_MOVE_ERROR
-Windows.Win32.Foundation.ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD
-Windows.Win32.Foundation.ERROR_DS_CROSS_NC_DN_RENAME
-Windows.Win32.Foundation.ERROR_DS_CROSS_REF_BUSY
-Windows.Win32.Foundation.ERROR_DS_CROSS_REF_EXISTS
-Windows.Win32.Foundation.ERROR_DS_DATABASE_ERROR
-Windows.Win32.Foundation.ERROR_DS_DECODING_ERROR
-Windows.Win32.Foundation.ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED
-Windows.Win32.Foundation.ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST
-Windows.Win32.Foundation.ERROR_DS_DIFFERENT_REPL_EPOCHS
-Windows.Win32.Foundation.ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER
-Windows.Win32.Foundation.ERROR_DS_DISALLOWED_NC_REDIRECT
-Windows.Win32.Foundation.ERROR_DS_DNS_LOOKUP_FAILURE
-Windows.Win32.Foundation.ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST
-Windows.Win32.Foundation.ERROR_DS_DOMAIN_RENAME_IN_PROGRESS
-Windows.Win32.Foundation.ERROR_DS_DOMAIN_VERSION_TOO_HIGH
-Windows.Win32.Foundation.ERROR_DS_DOMAIN_VERSION_TOO_LOW
-Windows.Win32.Foundation.ERROR_DS_DRA_ABANDON_SYNC
-Windows.Win32.Foundation.ERROR_DS_DRA_ACCESS_DENIED
-Windows.Win32.Foundation.ERROR_DS_DRA_BAD_DN
-Windows.Win32.Foundation.ERROR_DS_DRA_BAD_INSTANCE_TYPE
-Windows.Win32.Foundation.ERROR_DS_DRA_BAD_NC
-Windows.Win32.Foundation.ERROR_DS_DRA_BUSY
-Windows.Win32.Foundation.ERROR_DS_DRA_CONNECTION_FAILED
-Windows.Win32.Foundation.ERROR_DS_DRA_CORRUPT_UTD_VECTOR
-Windows.Win32.Foundation.ERROR_DS_DRA_DB_ERROR
-Windows.Win32.Foundation.ERROR_DS_DRA_DN_EXISTS
-Windows.Win32.Foundation.ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT
-Windows.Win32.Foundation.ERROR_DS_DRA_EXTN_CONNECTION_FAILED
-Windows.Win32.Foundation.ERROR_DS_DRA_GENERIC
-Windows.Win32.Foundation.ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET
-Windows.Win32.Foundation.ERROR_DS_DRA_INCONSISTENT_DIT
-Windows.Win32.Foundation.ERROR_DS_DRA_INTERNAL_ERROR
-Windows.Win32.Foundation.ERROR_DS_DRA_INVALID_PARAMETER
-Windows.Win32.Foundation.ERROR_DS_DRA_MAIL_PROBLEM
-Windows.Win32.Foundation.ERROR_DS_DRA_MISSING_KRBTGT_SECRET
-Windows.Win32.Foundation.ERROR_DS_DRA_MISSING_PARENT
-Windows.Win32.Foundation.ERROR_DS_DRA_NAME_COLLISION
-Windows.Win32.Foundation.ERROR_DS_DRA_NO_REPLICA
-Windows.Win32.Foundation.ERROR_DS_DRA_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_DS_DRA_OBJ_IS_REP_SOURCE
-Windows.Win32.Foundation.ERROR_DS_DRA_OBJ_NC_MISMATCH
-Windows.Win32.Foundation.ERROR_DS_DRA_OUT_OF_MEM
-Windows.Win32.Foundation.ERROR_DS_DRA_OUT_SCHEDULE_WINDOW
-Windows.Win32.Foundation.ERROR_DS_DRA_PREEMPTED
-Windows.Win32.Foundation.ERROR_DS_DRA_RECYCLED_TARGET
-Windows.Win32.Foundation.ERROR_DS_DRA_REF_ALREADY_EXISTS
-Windows.Win32.Foundation.ERROR_DS_DRA_REF_NOT_FOUND
-Windows.Win32.Foundation.ERROR_DS_DRA_REPL_PENDING
-Windows.Win32.Foundation.ERROR_DS_DRA_RPC_CANCELLED
-Windows.Win32.Foundation.ERROR_DS_DRA_SCHEMA_CONFLICT
-Windows.Win32.Foundation.ERROR_DS_DRA_SCHEMA_INFO_SHIP
-Windows.Win32.Foundation.ERROR_DS_DRA_SCHEMA_MISMATCH
-Windows.Win32.Foundation.ERROR_DS_DRA_SECRETS_DENIED
-Windows.Win32.Foundation.ERROR_DS_DRA_SHUTDOWN
-Windows.Win32.Foundation.ERROR_DS_DRA_SINK_DISABLED
-Windows.Win32.Foundation.ERROR_DS_DRA_SOURCE_DISABLED
-Windows.Win32.Foundation.ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA
-Windows.Win32.Foundation.ERROR_DS_DRA_SOURCE_REINSTALLED
-Windows.Win32.Foundation.ERROR_DS_DRS_EXTENSIONS_CHANGED
-Windows.Win32.Foundation.ERROR_DS_DS_REQUIRED
-Windows.Win32.Foundation.ERROR_DS_DSA_MUST_BE_INT_MASTER
-Windows.Win32.Foundation.ERROR_DS_DST_DOMAIN_NOT_NATIVE
-Windows.Win32.Foundation.ERROR_DS_DST_NC_MISMATCH
-Windows.Win32.Foundation.ERROR_DS_DUP_LDAP_DISPLAY_NAME
-Windows.Win32.Foundation.ERROR_DS_DUP_LINK_ID
-Windows.Win32.Foundation.ERROR_DS_DUP_MAPI_ID
-Windows.Win32.Foundation.ERROR_DS_DUP_MSDS_INTID
-Windows.Win32.Foundation.ERROR_DS_DUP_OID
-Windows.Win32.Foundation.ERROR_DS_DUP_RDN
-Windows.Win32.Foundation.ERROR_DS_DUP_SCHEMA_ID_GUID
-Windows.Win32.Foundation.ERROR_DS_DUPLICATE_ID_FOUND
-Windows.Win32.Foundation.ERROR_DS_ENCODING_ERROR
-Windows.Win32.Foundation.ERROR_DS_EPOCH_MISMATCH
-Windows.Win32.Foundation.ERROR_DS_EXISTING_AD_CHILD_NC
-Windows.Win32.Foundation.ERROR_DS_EXISTS_IN_AUX_CLS
-Windows.Win32.Foundation.ERROR_DS_EXISTS_IN_MAY_HAVE
-Windows.Win32.Foundation.ERROR_DS_EXISTS_IN_MUST_HAVE
-Windows.Win32.Foundation.ERROR_DS_EXISTS_IN_POSS_SUP
-Windows.Win32.Foundation.ERROR_DS_EXISTS_IN_RDNATTID
-Windows.Win32.Foundation.ERROR_DS_EXISTS_IN_SUB_CLS
-Windows.Win32.Foundation.ERROR_DS_FILTER_UNKNOWN
-Windows.Win32.Foundation.ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS
-Windows.Win32.Foundation.ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST
-Windows.Win32.Foundation.ERROR_DS_FOREST_VERSION_TOO_HIGH
-Windows.Win32.Foundation.ERROR_DS_FOREST_VERSION_TOO_LOW
-Windows.Win32.Foundation.ERROR_DS_GC_NOT_AVAILABLE
-Windows.Win32.Foundation.ERROR_DS_GC_REQUIRED
-Windows.Win32.Foundation.ERROR_DS_GCVERIFY_ERROR
-Windows.Win32.Foundation.ERROR_DS_GENERIC_ERROR
-Windows.Win32.Foundation.ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER
-Windows.Win32.Foundation.ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER
-Windows.Win32.Foundation.ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER
-Windows.Win32.Foundation.ERROR_DS_GOVERNSID_MISSING
-Windows.Win32.Foundation.ERROR_DS_GROUP_CONVERSION_ERROR
-Windows.Win32.Foundation.ERROR_DS_HAVE_PRIMARY_MEMBERS
-Windows.Win32.Foundation.ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED
-Windows.Win32.Foundation.ERROR_DS_HIERARCHY_TABLE_TOO_DEEP
-Windows.Win32.Foundation.ERROR_DS_HIGH_ADLDS_FFL
-Windows.Win32.Foundation.ERROR_DS_HIGH_DSA_VERSION
-Windows.Win32.Foundation.ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD
-Windows.Win32.Foundation.ERROR_DS_ILLEGAL_MOD_OPERATION
-Windows.Win32.Foundation.ERROR_DS_ILLEGAL_SUPERIOR
-Windows.Win32.Foundation.ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION
-Windows.Win32.Foundation.ERROR_DS_INAPPROPRIATE_AUTH
-Windows.Win32.Foundation.ERROR_DS_INAPPROPRIATE_MATCHING
-Windows.Win32.Foundation.ERROR_DS_INCOMPATIBLE_CONTROLS_USED
-Windows.Win32.Foundation.ERROR_DS_INCOMPATIBLE_VERSION
-Windows.Win32.Foundation.ERROR_DS_INCORRECT_ROLE_OWNER
-Windows.Win32.Foundation.ERROR_DS_INIT_FAILURE
-Windows.Win32.Foundation.ERROR_DS_INIT_FAILURE_CONSOLE
-Windows.Win32.Foundation.ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE
-Windows.Win32.Foundation.ERROR_DS_INSTALL_NO_SRC_SCH_VERSION
-Windows.Win32.Foundation.ERROR_DS_INSTALL_SCHEMA_MISMATCH
-Windows.Win32.Foundation.ERROR_DS_INSUFF_ACCESS_RIGHTS
-Windows.Win32.Foundation.ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT
-Windows.Win32.Foundation.ERROR_DS_INTERNAL_FAILURE
-Windows.Win32.Foundation.ERROR_DS_INVALID_ATTRIBUTE_SYNTAX
-Windows.Win32.Foundation.ERROR_DS_INVALID_DMD
-Windows.Win32.Foundation.ERROR_DS_INVALID_DN_SYNTAX
-Windows.Win32.Foundation.ERROR_DS_INVALID_GROUP_TYPE
-Windows.Win32.Foundation.ERROR_DS_INVALID_LDAP_DISPLAY_NAME
-Windows.Win32.Foundation.ERROR_DS_INVALID_NAME_FOR_SPN
-Windows.Win32.Foundation.ERROR_DS_INVALID_ROLE_OWNER
-Windows.Win32.Foundation.ERROR_DS_INVALID_SCRIPT
-Windows.Win32.Foundation.ERROR_DS_INVALID_SEARCH_FLAG
-Windows.Win32.Foundation.ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE
-Windows.Win32.Foundation.ERROR_DS_INVALID_SEARCH_FLAG_TUPLE
-Windows.Win32.Foundation.ERROR_DS_IS_LEAF
-Windows.Win32.Foundation.ERROR_DS_KEY_NOT_UNIQUE
-Windows.Win32.Foundation.ERROR_DS_LDAP_SEND_QUEUE_FULL
-Windows.Win32.Foundation.ERROR_DS_LINK_ID_NOT_AVAILABLE
-Windows.Win32.Foundation.ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER
-Windows.Win32.Foundation.ERROR_DS_LOCAL_ERROR
-Windows.Win32.Foundation.ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY
-Windows.Win32.Foundation.ERROR_DS_LOOP_DETECT
-Windows.Win32.Foundation.ERROR_DS_LOW_ADLDS_FFL
-Windows.Win32.Foundation.ERROR_DS_LOW_DSA_VERSION
-Windows.Win32.Foundation.ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4
-Windows.Win32.Foundation.ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED
-Windows.Win32.Foundation.ERROR_DS_MAPI_ID_NOT_AVAILABLE
-Windows.Win32.Foundation.ERROR_DS_MASTERDSA_REQUIRED
-Windows.Win32.Foundation.ERROR_DS_MAX_OBJ_SIZE_EXCEEDED
-Windows.Win32.Foundation.ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY
-Windows.Win32.Foundation.ERROR_DS_MISSING_EXPECTED_ATT
-Windows.Win32.Foundation.ERROR_DS_MISSING_FOREST_TRUST
-Windows.Win32.Foundation.ERROR_DS_MISSING_FSMO_SETTINGS
-Windows.Win32.Foundation.ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER
-Windows.Win32.Foundation.ERROR_DS_MISSING_REQUIRED_ATT
-Windows.Win32.Foundation.ERROR_DS_MISSING_SUPREF
-Windows.Win32.Foundation.ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG
-Windows.Win32.Foundation.ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE
-Windows.Win32.Foundation.ERROR_DS_MODIFYDN_WRONG_GRANDPARENT
-Windows.Win32.Foundation.ERROR_DS_MUST_BE_RUN_ON_DST_DC
-Windows.Win32.Foundation.ERROR_DS_NAME_ERROR_DOMAIN_ONLY
-Windows.Win32.Foundation.ERROR_DS_NAME_ERROR_NO_MAPPING
-Windows.Win32.Foundation.ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING
-Windows.Win32.Foundation.ERROR_DS_NAME_ERROR_NOT_FOUND
-Windows.Win32.Foundation.ERROR_DS_NAME_ERROR_NOT_UNIQUE
-Windows.Win32.Foundation.ERROR_DS_NAME_ERROR_RESOLVING
-Windows.Win32.Foundation.ERROR_DS_NAME_ERROR_TRUST_REFERRAL
-Windows.Win32.Foundation.ERROR_DS_NAME_NOT_UNIQUE
-Windows.Win32.Foundation.ERROR_DS_NAME_REFERENCE_INVALID
-Windows.Win32.Foundation.ERROR_DS_NAME_TOO_LONG
-Windows.Win32.Foundation.ERROR_DS_NAME_TOO_MANY_PARTS
-Windows.Win32.Foundation.ERROR_DS_NAME_TYPE_UNKNOWN
-Windows.Win32.Foundation.ERROR_DS_NAME_UNPARSEABLE
-Windows.Win32.Foundation.ERROR_DS_NAME_VALUE_TOO_LONG
-Windows.Win32.Foundation.ERROR_DS_NAMING_MASTER_GC
-Windows.Win32.Foundation.ERROR_DS_NAMING_VIOLATION
-Windows.Win32.Foundation.ERROR_DS_NC_MUST_HAVE_NC_PARENT
-Windows.Win32.Foundation.ERROR_DS_NC_STILL_HAS_DSAS
-Windows.Win32.Foundation.ERROR_DS_NCNAME_MISSING_CR_REF
-Windows.Win32.Foundation.ERROR_DS_NCNAME_MUST_BE_NC
-Windows.Win32.Foundation.ERROR_DS_NO_ATTRIBUTE_OR_VALUE
-Windows.Win32.Foundation.ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN
-Windows.Win32.Foundation.ERROR_DS_NO_CHAINED_EVAL
-Windows.Win32.Foundation.ERROR_DS_NO_CHAINING
-Windows.Win32.Foundation.ERROR_DS_NO_CHECKPOINT_WITH_PDC
-Windows.Win32.Foundation.ERROR_DS_NO_CROSSREF_FOR_NC
-Windows.Win32.Foundation.ERROR_DS_NO_DELETED_NAME
-Windows.Win32.Foundation.ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS
-Windows.Win32.Foundation.ERROR_DS_NO_MORE_RIDS
-Windows.Win32.Foundation.ERROR_DS_NO_MSDS_INTID
-Windows.Win32.Foundation.ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN
-Windows.Win32.Foundation.ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN
-Windows.Win32.Foundation.ERROR_DS_NO_NTDSA_OBJECT
-Windows.Win32.Foundation.ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC
-Windows.Win32.Foundation.ERROR_DS_NO_PARENT_OBJECT
-Windows.Win32.Foundation.ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION
-Windows.Win32.Foundation.ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA
-Windows.Win32.Foundation.ERROR_DS_NO_REF_DOMAIN
-Windows.Win32.Foundation.ERROR_DS_NO_REQUESTED_ATTS_FOUND
-Windows.Win32.Foundation.ERROR_DS_NO_RESULTS_RETURNED
-Windows.Win32.Foundation.ERROR_DS_NO_RIDS_ALLOCATED
-Windows.Win32.Foundation.ERROR_DS_NO_SERVER_OBJECT
-Windows.Win32.Foundation.ERROR_DS_NO_SUCH_OBJECT
-Windows.Win32.Foundation.ERROR_DS_NO_TREE_DELETE_ABOVE_NC
-Windows.Win32.Foundation.ERROR_DS_NON_ASQ_SEARCH
-Windows.Win32.Foundation.ERROR_DS_NON_BASE_SEARCH
-Windows.Win32.Foundation.ERROR_DS_NONEXISTENT_MAY_HAVE
-Windows.Win32.Foundation.ERROR_DS_NONEXISTENT_MUST_HAVE
-Windows.Win32.Foundation.ERROR_DS_NONEXISTENT_POSS_SUP
-Windows.Win32.Foundation.ERROR_DS_NONSAFE_SCHEMA_CHANGE
-Windows.Win32.Foundation.ERROR_DS_NOT_AN_OBJECT
-Windows.Win32.Foundation.ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC
-Windows.Win32.Foundation.ERROR_DS_NOT_CLOSEST
-Windows.Win32.Foundation.ERROR_DS_NOT_INSTALLED
-Windows.Win32.Foundation.ERROR_DS_NOT_ON_BACKLINK
-Windows.Win32.Foundation.ERROR_DS_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_DS_NOT_SUPPORTED_SORT_ORDER
-Windows.Win32.Foundation.ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX
-Windows.Win32.Foundation.ERROR_DS_NTDSCRIPT_PROCESS_ERROR
-Windows.Win32.Foundation.ERROR_DS_NTDSCRIPT_SYNTAX_ERROR
-Windows.Win32.Foundation.ERROR_DS_OBJ_CLASS_NOT_DEFINED
-Windows.Win32.Foundation.ERROR_DS_OBJ_CLASS_NOT_SUBCLASS
-Windows.Win32.Foundation.ERROR_DS_OBJ_CLASS_VIOLATION
-Windows.Win32.Foundation.ERROR_DS_OBJ_GUID_EXISTS
-Windows.Win32.Foundation.ERROR_DS_OBJ_NOT_FOUND
-Windows.Win32.Foundation.ERROR_DS_OBJ_STRING_NAME_EXISTS
-Windows.Win32.Foundation.ERROR_DS_OBJ_TOO_LARGE
-Windows.Win32.Foundation.ERROR_DS_OBJECT_BEING_REMOVED
-Windows.Win32.Foundation.ERROR_DS_OBJECT_CLASS_REQUIRED
-Windows.Win32.Foundation.ERROR_DS_OBJECT_RESULTS_TOO_LARGE
-Windows.Win32.Foundation.ERROR_DS_OFFSET_RANGE_ERROR
-Windows.Win32.Foundation.ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS
-Windows.Win32.Foundation.ERROR_DS_OID_NOT_FOUND
-Windows.Win32.Foundation.ERROR_DS_OPERATIONS_ERROR
-Windows.Win32.Foundation.ERROR_DS_OUT_OF_SCOPE
-Windows.Win32.Foundation.ERROR_DS_OUT_OF_VERSION_STORE
-Windows.Win32.Foundation.ERROR_DS_PARAM_ERROR
-Windows.Win32.Foundation.ERROR_DS_PARENT_IS_AN_ALIAS
-Windows.Win32.Foundation.ERROR_DS_PDC_OPERATION_IN_PROGRESS
-Windows.Win32.Foundation.ERROR_DS_PER_ATTRIBUTE_AUTHZ_FAILED_DURING_ADD
-Windows.Win32.Foundation.ERROR_DS_POLICY_NOT_KNOWN
-Windows.Win32.Foundation.ERROR_DS_PROTOCOL_ERROR
-Windows.Win32.Foundation.ERROR_DS_RANGE_CONSTRAINT
-Windows.Win32.Foundation.ERROR_DS_RDN_DOESNT_MATCH_SCHEMA
-Windows.Win32.Foundation.ERROR_DS_RECALCSCHEMA_FAILED
-Windows.Win32.Foundation.ERROR_DS_REFERRAL
-Windows.Win32.Foundation.ERROR_DS_REFERRAL_LIMIT_EXCEEDED
-Windows.Win32.Foundation.ERROR_DS_REFUSING_FSMO_ROLES
-Windows.Win32.Foundation.ERROR_DS_REMOTE_CROSSREF_OP_FAILED
-Windows.Win32.Foundation.ERROR_DS_REPL_LIFETIME_EXCEEDED
-Windows.Win32.Foundation.ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR
-Windows.Win32.Foundation.ERROR_DS_REPLICATOR_ONLY
-Windows.Win32.Foundation.ERROR_DS_RESERVED_LINK_ID
-Windows.Win32.Foundation.ERROR_DS_RESERVED_MAPI_ID
-Windows.Win32.Foundation.ERROR_DS_RIDMGR_DISABLED
-Windows.Win32.Foundation.ERROR_DS_RIDMGR_INIT_ERROR
-Windows.Win32.Foundation.ERROR_DS_ROLE_NOT_VERIFIED
-Windows.Win32.Foundation.ERROR_DS_ROOT_CANT_BE_SUBREF
-Windows.Win32.Foundation.ERROR_DS_ROOT_MUST_BE_NC
-Windows.Win32.Foundation.ERROR_DS_ROOT_REQUIRES_CLASS_TOP
-Windows.Win32.Foundation.ERROR_DS_SAM_INIT_FAILURE
-Windows.Win32.Foundation.ERROR_DS_SAM_INIT_FAILURE_CONSOLE
-Windows.Win32.Foundation.ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY
-Windows.Win32.Foundation.ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD
-Windows.Win32.Foundation.ERROR_DS_SCHEMA_ALLOC_FAILED
-Windows.Win32.Foundation.ERROR_DS_SCHEMA_NOT_LOADED
-Windows.Win32.Foundation.ERROR_DS_SCHEMA_UPDATE_DISALLOWED
-Windows.Win32.Foundation.ERROR_DS_SEC_DESC_INVALID
-Windows.Win32.Foundation.ERROR_DS_SEC_DESC_TOO_SHORT
-Windows.Win32.Foundation.ERROR_DS_SECURITY_CHECKING_ERROR
-Windows.Win32.Foundation.ERROR_DS_SECURITY_ILLEGAL_MODIFY
-Windows.Win32.Foundation.ERROR_DS_SEMANTIC_ATT_TEST
-Windows.Win32.Foundation.ERROR_DS_SENSITIVE_GROUP_VIOLATION
-Windows.Win32.Foundation.ERROR_DS_SERVER_DOWN
-Windows.Win32.Foundation.ERROR_DS_SHUTTING_DOWN
-Windows.Win32.Foundation.ERROR_DS_SINGLE_USER_MODE_FAILED
-Windows.Win32.Foundation.ERROR_DS_SINGLE_VALUE_CONSTRAINT
-Windows.Win32.Foundation.ERROR_DS_SIZELIMIT_EXCEEDED
-Windows.Win32.Foundation.ERROR_DS_SORT_CONTROL_MISSING
-Windows.Win32.Foundation.ERROR_DS_SOURCE_AUDITING_NOT_ENABLED
-Windows.Win32.Foundation.ERROR_DS_SOURCE_DOMAIN_IN_FOREST
-Windows.Win32.Foundation.ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST
-Windows.Win32.Foundation.ERROR_DS_SRC_AND_DST_NC_IDENTICAL
-Windows.Win32.Foundation.ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH
-Windows.Win32.Foundation.ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER
-Windows.Win32.Foundation.ERROR_DS_SRC_GUID_MISMATCH
-Windows.Win32.Foundation.ERROR_DS_SRC_NAME_MISMATCH
-Windows.Win32.Foundation.ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER
-Windows.Win32.Foundation.ERROR_DS_SRC_SID_EXISTS_IN_FOREST
-Windows.Win32.Foundation.ERROR_DS_STRING_SD_CONVERSION_FAILED
-Windows.Win32.Foundation.ERROR_DS_STRONG_AUTH_REQUIRED
-Windows.Win32.Foundation.ERROR_DS_SUB_CLS_TEST_FAIL
-Windows.Win32.Foundation.ERROR_DS_SUBREF_MUST_HAVE_PARENT
-Windows.Win32.Foundation.ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD
-Windows.Win32.Foundation.ERROR_DS_SYNTAX_MISMATCH
-Windows.Win32.Foundation.ERROR_DS_THREAD_LIMIT_EXCEEDED
-Windows.Win32.Foundation.ERROR_DS_TIMELIMIT_EXCEEDED
-Windows.Win32.Foundation.ERROR_DS_TREE_DELETE_NOT_FINISHED
-Windows.Win32.Foundation.ERROR_DS_UNABLE_TO_SURRENDER_ROLES
-Windows.Win32.Foundation.ERROR_DS_UNAVAILABLE
-Windows.Win32.Foundation.ERROR_DS_UNAVAILABLE_CRIT_EXTENSION
-Windows.Win32.Foundation.ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED
-Windows.Win32.Foundation.ERROR_DS_UNICODEPWD_NOT_IN_QUOTES
-Windows.Win32.Foundation.ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER
-Windows.Win32.Foundation.ERROR_DS_UNKNOWN_ERROR
-Windows.Win32.Foundation.ERROR_DS_UNKNOWN_OPERATION
-Windows.Win32.Foundation.ERROR_DS_UNWILLING_TO_PERFORM
-Windows.Win32.Foundation.ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST
-Windows.Win32.Foundation.ERROR_DS_USER_BUFFER_TO_SMALL
-Windows.Win32.Foundation.ERROR_DS_VALUE_KEY_NOT_UNIQUE
-Windows.Win32.Foundation.ERROR_DS_VERSION_CHECK_FAILURE
-Windows.Win32.Foundation.ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL
-Windows.Win32.Foundation.ERROR_DS_WRONG_LINKED_ATT_SYNTAX
-Windows.Win32.Foundation.ERROR_DS_WRONG_OM_OBJ_CLASS
-Windows.Win32.Foundation.ERROR_DUP_DOMAINNAME
-Windows.Win32.Foundation.ERROR_DUP_NAME
-Windows.Win32.Foundation.ERROR_DUPLICATE_PRIVILEGES
-Windows.Win32.Foundation.ERROR_DUPLICATE_SERVICE_NAME
-Windows.Win32.Foundation.ERROR_DYNAMIC_CODE_BLOCKED
-Windows.Win32.Foundation.ERROR_DYNLINK_FROM_INVALID_RING
-Windows.Win32.Foundation.ERROR_EA_ACCESS_DENIED
-Windows.Win32.Foundation.ERROR_EA_FILE_CORRUPT
-Windows.Win32.Foundation.ERROR_EA_LIST_INCONSISTENT
-Windows.Win32.Foundation.ERROR_EA_TABLE_FULL
-Windows.Win32.Foundation.ERROR_EAS_DIDNT_FIT
-Windows.Win32.Foundation.ERROR_EAS_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED
-Windows.Win32.Foundation.ERROR_EDP_POLICY_DENIES_OPERATION
-Windows.Win32.Foundation.ERROR_EFS_ALG_BLOB_TOO_BIG
-Windows.Win32.Foundation.ERROR_EFS_DISABLED
-Windows.Win32.Foundation.ERROR_EFS_SERVER_NOT_TRUSTED
-Windows.Win32.Foundation.ERROR_EFS_VERSION_NOT_SUPPORT
-Windows.Win32.Foundation.ERROR_ELEVATION_REQUIRED
-Windows.Win32.Foundation.ERROR_ENCLAVE_FAILURE
-Windows.Win32.Foundation.ERROR_ENCLAVE_NOT_TERMINATED
-Windows.Win32.Foundation.ERROR_ENCLAVE_VIOLATION
-Windows.Win32.Foundation.ERROR_ENCRYPTED_FILE_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_ENCRYPTED_IO_NOT_POSSIBLE
-Windows.Win32.Foundation.ERROR_ENCRYPTING_METADATA_DISALLOWED
-Windows.Win32.Foundation.ERROR_ENCRYPTION_DISABLED
-Windows.Win32.Foundation.ERROR_ENCRYPTION_FAILED
-Windows.Win32.Foundation.ERROR_ENCRYPTION_POLICY_DENIES_OPERATION
-Windows.Win32.Foundation.ERROR_END_OF_MEDIA
-Windows.Win32.Foundation.ERROR_ENVVAR_NOT_FOUND
-Windows.Win32.Foundation.ERROR_EOM_OVERFLOW
-Windows.Win32.Foundation.ERROR_ERRORS_ENCOUNTERED
-Windows.Win32.Foundation.ERROR_EVALUATION_EXPIRATION
-Windows.Win32.Foundation.ERROR_EVENT_DONE
-Windows.Win32.Foundation.ERROR_EVENT_PENDING
-Windows.Win32.Foundation.ERROR_EVENTLOG_CANT_START
-Windows.Win32.Foundation.ERROR_EVENTLOG_FILE_CHANGED
-Windows.Win32.Foundation.ERROR_EVENTLOG_FILE_CORRUPT
-Windows.Win32.Foundation.ERROR_EXCEPTION_IN_SERVICE
-Windows.Win32.Foundation.ERROR_EXCL_SEM_ALREADY_OWNED
-Windows.Win32.Foundation.ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY
-Windows.Win32.Foundation.ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY
-Windows.Win32.Foundation.ERROR_EXE_MACHINE_TYPE_MISMATCH
-Windows.Win32.Foundation.ERROR_EXE_MARKED_INVALID
-Windows.Win32.Foundation.ERROR_EXTENDED_ERROR
-Windows.Win32.Foundation.ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN
-Windows.Win32.Foundation.ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_EXTRANEOUS_INFORMATION
-Windows.Win32.Foundation.ERROR_FAIL_FAST_EXCEPTION
-Windows.Win32.Foundation.ERROR_FAIL_I24
-Windows.Win32.Foundation.ERROR_FAIL_NOACTION_REBOOT
-Windows.Win32.Foundation.ERROR_FAIL_RESTART
-Windows.Win32.Foundation.ERROR_FAIL_SHUTDOWN
-Windows.Win32.Foundation.ERROR_FAILED_DRIVER_ENTRY
-Windows.Win32.Foundation.ERROR_FAILED_SERVICE_CONTROLLER_CONNECT
-Windows.Win32.Foundation.ERROR_FATAL_APP_EXIT
-Windows.Win32.Foundation.ERROR_FILE_CHECKED_OUT
-Windows.Win32.Foundation.ERROR_FILE_CORRUPT
-Windows.Win32.Foundation.ERROR_FILE_ENCRYPTED
-Windows.Win32.Foundation.ERROR_FILE_EXISTS
-Windows.Win32.Foundation.ERROR_FILE_HANDLE_REVOKED
-Windows.Win32.Foundation.ERROR_FILE_INVALID
-Windows.Win32.Foundation.ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS
-Windows.Win32.Foundation.ERROR_FILE_NOT_ENCRYPTED
-Windows.Win32.Foundation.ERROR_FILE_NOT_FOUND
-Windows.Win32.Foundation.ERROR_FILE_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_FILE_OFFLINE
-Windows.Win32.Foundation.ERROR_FILE_PROTECTED_UNDER_DPL
-Windows.Win32.Foundation.ERROR_FILE_READ_ONLY
-Windows.Win32.Foundation.ERROR_FILE_SNAP_IN_PROGRESS
-Windows.Win32.Foundation.ERROR_FILE_SNAP_INVALID_PARAMETER
-Windows.Win32.Foundation.ERROR_FILE_SNAP_IO_NOT_COORDINATED
-Windows.Win32.Foundation.ERROR_FILE_SNAP_MODIFY_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_FILE_SNAP_UNEXPECTED_ERROR
-Windows.Win32.Foundation.ERROR_FILE_SNAP_USER_SECTION_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_FILE_SYSTEM_LIMITATION
-Windows.Win32.Foundation.ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY
-Windows.Win32.Foundation.ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION
-Windows.Win32.Foundation.ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT
-Windows.Win32.Foundation.ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN
-Windows.Win32.Foundation.ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE
-Windows.Win32.Foundation.ERROR_FILE_TOO_LARGE
-Windows.Win32.Foundation.ERROR_FILEMARK_DETECTED
-Windows.Win32.Foundation.ERROR_FILENAME_EXCED_RANGE
-Windows.Win32.Foundation.ERROR_FIRMWARE_UPDATED
-Windows.Win32.Foundation.ERROR_FLOAT_MULTIPLE_FAULTS
-Windows.Win32.Foundation.ERROR_FLOAT_MULTIPLE_TRAPS
-Windows.Win32.Foundation.ERROR_FLOPPY_BAD_REGISTERS
-Windows.Win32.Foundation.ERROR_FLOPPY_ID_MARK_NOT_FOUND
-Windows.Win32.Foundation.ERROR_FLOPPY_UNKNOWN_ERROR
-Windows.Win32.Foundation.ERROR_FLOPPY_VOLUME
-Windows.Win32.Foundation.ERROR_FLOPPY_WRONG_CYLINDER
-Windows.Win32.Foundation.ERROR_FORMS_AUTH_REQUIRED
-Windows.Win32.Foundation.ERROR_FOUND_OUT_OF_SCOPE
-Windows.Win32.Foundation.ERROR_FS_DRIVER_REQUIRED
-Windows.Win32.Foundation.ERROR_FS_METADATA_INCONSISTENT
-Windows.Win32.Foundation.ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY
-Windows.Win32.Foundation.ERROR_FT_DI_SCAN_REQUIRED
-Windows.Win32.Foundation.ERROR_FT_READ_FAILURE
-Windows.Win32.Foundation.ERROR_FT_READ_FROM_COPY_FAILURE
-Windows.Win32.Foundation.ERROR_FT_READ_RECOVERY_FROM_BACKUP
-Windows.Win32.Foundation.ERROR_FT_WRITE_FAILURE
-Windows.Win32.Foundation.ERROR_FT_WRITE_RECOVERY
-Windows.Win32.Foundation.ERROR_FULLSCREEN_MODE
-Windows.Win32.Foundation.ERROR_FUNCTION_FAILED
-Windows.Win32.Foundation.ERROR_FUNCTION_NOT_CALLED
-Windows.Win32.Foundation.ERROR_GDI_HANDLE_LEAK
-Windows.Win32.Foundation.ERROR_GEN_FAILURE
-Windows.Win32.Foundation.ERROR_GENERIC_NOT_MAPPED
-Windows.Win32.Foundation.ERROR_GLOBAL_ONLY_HOOK
-Windows.Win32.Foundation.ERROR_GRACEFUL_DISCONNECT
-Windows.Win32.Foundation.ERROR_GROUP_EXISTS
-Windows.Win32.Foundation.ERROR_GUID_SUBSTITUTION_MADE
-Windows.Win32.Foundation.ERROR_HANDLE_DISK_FULL
-Windows.Win32.Foundation.ERROR_HANDLE_EOF
-Windows.Win32.Foundation.ERROR_HANDLE_REVOKED
-Windows.Win32.Foundation.ERROR_HANDLES_CLOSED
-Windows.Win32.Foundation.ERROR_HAS_SYSTEM_CRITICAL_FILES
-Windows.Win32.Foundation.ERROR_HIBERNATED
-Windows.Win32.Foundation.ERROR_HIBERNATION_FAILURE
-Windows.Win32.Foundation.ERROR_HOOK_NEEDS_HMOD
-Windows.Win32.Foundation.ERROR_HOOK_NOT_INSTALLED
-Windows.Win32.Foundation.ERROR_HOOK_TYPE_NOT_ALLOWED
-Windows.Win32.Foundation.ERROR_HOST_DOWN
-Windows.Win32.Foundation.ERROR_HOST_UNREACHABLE
-Windows.Win32.Foundation.ERROR_HOTKEY_ALREADY_REGISTERED
-Windows.Win32.Foundation.ERROR_HOTKEY_NOT_REGISTERED
-Windows.Win32.Foundation.ERROR_HWNDS_HAVE_DIFF_PARENT
-Windows.Win32.Foundation.ERROR_ILL_FORMED_PASSWORD
-Windows.Win32.Foundation.ERROR_ILLEGAL_CHARACTER
-Windows.Win32.Foundation.ERROR_ILLEGAL_DLL_RELOCATION
-Windows.Win32.Foundation.ERROR_ILLEGAL_ELEMENT_ADDRESS
-Windows.Win32.Foundation.ERROR_ILLEGAL_FLOAT_CONTEXT
-Windows.Win32.Foundation.ERROR_IMAGE_AT_DIFFERENT_BASE
-Windows.Win32.Foundation.ERROR_IMAGE_MACHINE_TYPE_MISMATCH
-Windows.Win32.Foundation.ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE
-Windows.Win32.Foundation.ERROR_IMAGE_NOT_AT_BASE
-Windows.Win32.Foundation.ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT
-Windows.Win32.Foundation.ERROR_IMPLEMENTATION_LIMIT
-Windows.Win32.Foundation.ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE
-Windows.Win32.Foundation.ERROR_INCOMPATIBLE_SERVICE_SID_TYPE
-Windows.Win32.Foundation.ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING
-Windows.Win32.Foundation.ERROR_INCORRECT_ACCOUNT_TYPE
-Windows.Win32.Foundation.ERROR_INCORRECT_ADDRESS
-Windows.Win32.Foundation.ERROR_INCORRECT_SIZE
-Windows.Win32.Foundation.ERROR_INDEX_ABSENT
-Windows.Win32.Foundation.ERROR_INDEX_OUT_OF_BOUNDS
-Windows.Win32.Foundation.ERROR_INFLOOP_IN_RELOC_CHAIN
-Windows.Win32.Foundation.ERROR_INSTALL_ALREADY_RUNNING
-Windows.Win32.Foundation.ERROR_INSTALL_FAILURE
-Windows.Win32.Foundation.ERROR_INSTALL_LANGUAGE_UNSUPPORTED
-Windows.Win32.Foundation.ERROR_INSTALL_LOG_FAILURE
-Windows.Win32.Foundation.ERROR_INSTALL_NOTUSED
-Windows.Win32.Foundation.ERROR_INSTALL_PACKAGE_INVALID
-Windows.Win32.Foundation.ERROR_INSTALL_PACKAGE_OPEN_FAILED
-Windows.Win32.Foundation.ERROR_INSTALL_PACKAGE_REJECTED
-Windows.Win32.Foundation.ERROR_INSTALL_PACKAGE_VERSION
-Windows.Win32.Foundation.ERROR_INSTALL_PLATFORM_UNSUPPORTED
-Windows.Win32.Foundation.ERROR_INSTALL_REJECTED
-Windows.Win32.Foundation.ERROR_INSTALL_REMOTE_DISALLOWED
-Windows.Win32.Foundation.ERROR_INSTALL_REMOTE_PROHIBITED
-Windows.Win32.Foundation.ERROR_INSTALL_SERVICE_FAILURE
-Windows.Win32.Foundation.ERROR_INSTALL_SERVICE_SAFEBOOT
-Windows.Win32.Foundation.ERROR_INSTALL_SOURCE_ABSENT
-Windows.Win32.Foundation.ERROR_INSTALL_SUSPEND
-Windows.Win32.Foundation.ERROR_INSTALL_TEMP_UNWRITABLE
-Windows.Win32.Foundation.ERROR_INSTALL_TRANSFORM_FAILURE
-Windows.Win32.Foundation.ERROR_INSTALL_TRANSFORM_REJECTED
-Windows.Win32.Foundation.ERROR_INSTALL_UI_FAILURE
-Windows.Win32.Foundation.ERROR_INSTALL_USEREXIT
-Windows.Win32.Foundation.ERROR_INSTRUCTION_MISALIGNMENT
-Windows.Win32.Foundation.ERROR_INSUFFICIENT_BUFFER
-Windows.Win32.Foundation.ERROR_INSUFFICIENT_LOGON_INFO
-Windows.Win32.Foundation.ERROR_INSUFFICIENT_POWER
-Windows.Win32.Foundation.ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE
-Windows.Win32.Foundation.ERROR_INSUFFICIENT_VIRTUAL_ADDR_RESOURCES
-Windows.Win32.Foundation.ERROR_INTERMIXED_KERNEL_EA_OPERATION
-Windows.Win32.Foundation.ERROR_INTERNAL_DB_CORRUPTION
-Windows.Win32.Foundation.ERROR_INTERNAL_DB_ERROR
-Windows.Win32.Foundation.ERROR_INTERNAL_ERROR
-Windows.Win32.Foundation.ERROR_INTERRUPT_STILL_CONNECTED
-Windows.Win32.Foundation.ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED
-Windows.Win32.Foundation.ERROR_INVALID_ACCEL_HANDLE
-Windows.Win32.Foundation.ERROR_INVALID_ACCESS
-Windows.Win32.Foundation.ERROR_INVALID_ACCOUNT_NAME
-Windows.Win32.Foundation.ERROR_INVALID_ACE_CONDITION
-Windows.Win32.Foundation.ERROR_INVALID_ACL
-Windows.Win32.Foundation.ERROR_INVALID_ADDRESS
-Windows.Win32.Foundation.ERROR_INVALID_AT_INTERRUPT_TIME
-Windows.Win32.Foundation.ERROR_INVALID_BLOCK
-Windows.Win32.Foundation.ERROR_INVALID_BLOCK_LENGTH
-Windows.Win32.Foundation.ERROR_INVALID_CAP
-Windows.Win32.Foundation.ERROR_INVALID_CATEGORY
-Windows.Win32.Foundation.ERROR_INVALID_COMBOBOX_MESSAGE
-Windows.Win32.Foundation.ERROR_INVALID_COMMAND_LINE
-Windows.Win32.Foundation.ERROR_INVALID_COMPUTERNAME
-Windows.Win32.Foundation.ERROR_INVALID_CRUNTIME_PARAMETER
-Windows.Win32.Foundation.ERROR_INVALID_CURSOR_HANDLE
-Windows.Win32.Foundation.ERROR_INVALID_DATA
-Windows.Win32.Foundation.ERROR_INVALID_DATATYPE
-Windows.Win32.Foundation.ERROR_INVALID_DEVICE_OBJECT_PARAMETER
-Windows.Win32.Foundation.ERROR_INVALID_DLL
-Windows.Win32.Foundation.ERROR_INVALID_DOMAIN_ROLE
-Windows.Win32.Foundation.ERROR_INVALID_DOMAIN_STATE
-Windows.Win32.Foundation.ERROR_INVALID_DOMAINNAME
-Windows.Win32.Foundation.ERROR_INVALID_DRIVE
-Windows.Win32.Foundation.ERROR_INVALID_DWP_HANDLE
-Windows.Win32.Foundation.ERROR_INVALID_EA_HANDLE
-Windows.Win32.Foundation.ERROR_INVALID_EA_NAME
-Windows.Win32.Foundation.ERROR_INVALID_EDIT_HEIGHT
-Windows.Win32.Foundation.ERROR_INVALID_ENVIRONMENT
-Windows.Win32.Foundation.ERROR_INVALID_EVENT_COUNT
-Windows.Win32.Foundation.ERROR_INVALID_EVENTNAME
-Windows.Win32.Foundation.ERROR_INVALID_EXCEPTION_HANDLER
-Windows.Win32.Foundation.ERROR_INVALID_EXE_SIGNATURE
-Windows.Win32.Foundation.ERROR_INVALID_FIELD
-Windows.Win32.Foundation.ERROR_INVALID_FIELD_IN_PARAMETER_LIST
-Windows.Win32.Foundation.ERROR_INVALID_FILTER_PROC
-Windows.Win32.Foundation.ERROR_INVALID_FLAG_NUMBER
-Windows.Win32.Foundation.ERROR_INVALID_FLAGS
-Windows.Win32.Foundation.ERROR_INVALID_FORM_NAME
-Windows.Win32.Foundation.ERROR_INVALID_FORM_SIZE
-Windows.Win32.Foundation.ERROR_INVALID_FUNCTION
-Windows.Win32.Foundation.ERROR_INVALID_GROUP_ATTRIBUTES
-Windows.Win32.Foundation.ERROR_INVALID_GROUPNAME
-Windows.Win32.Foundation.ERROR_INVALID_GW_COMMAND
-Windows.Win32.Foundation.ERROR_INVALID_HANDLE
-Windows.Win32.Foundation.ERROR_INVALID_HANDLE_STATE
-Windows.Win32.Foundation.ERROR_INVALID_HOOK_FILTER
-Windows.Win32.Foundation.ERROR_INVALID_HOOK_HANDLE
-Windows.Win32.Foundation.ERROR_INVALID_HW_PROFILE
-Windows.Win32.Foundation.ERROR_INVALID_ICON_HANDLE
-Windows.Win32.Foundation.ERROR_INVALID_ID_AUTHORITY
-Windows.Win32.Foundation.ERROR_INVALID_IMAGE_HASH
-Windows.Win32.Foundation.ERROR_INVALID_IMPORT_OF_NON_DLL
-Windows.Win32.Foundation.ERROR_INVALID_INDEX
-Windows.Win32.Foundation.ERROR_INVALID_KERNEL_INFO_VERSION
-Windows.Win32.Foundation.ERROR_INVALID_KEYBOARD_HANDLE
-Windows.Win32.Foundation.ERROR_INVALID_LABEL
-Windows.Win32.Foundation.ERROR_INVALID_LB_MESSAGE
-Windows.Win32.Foundation.ERROR_INVALID_LDT_DESCRIPTOR
-Windows.Win32.Foundation.ERROR_INVALID_LDT_OFFSET
-Windows.Win32.Foundation.ERROR_INVALID_LDT_SIZE
-Windows.Win32.Foundation.ERROR_INVALID_LEVEL
-Windows.Win32.Foundation.ERROR_INVALID_LIST_FORMAT
-Windows.Win32.Foundation.ERROR_INVALID_LOCK_RANGE
-Windows.Win32.Foundation.ERROR_INVALID_LOGON_HOURS
-Windows.Win32.Foundation.ERROR_INVALID_LOGON_TYPE
-Windows.Win32.Foundation.ERROR_INVALID_MEMBER
-Windows.Win32.Foundation.ERROR_INVALID_MENU_HANDLE
-Windows.Win32.Foundation.ERROR_INVALID_MESSAGE
-Windows.Win32.Foundation.ERROR_INVALID_MESSAGEDEST
-Windows.Win32.Foundation.ERROR_INVALID_MESSAGENAME
-Windows.Win32.Foundation.ERROR_INVALID_MINALLOCSIZE
-Windows.Win32.Foundation.ERROR_INVALID_MODULETYPE
-Windows.Win32.Foundation.ERROR_INVALID_MONITOR_HANDLE
-Windows.Win32.Foundation.ERROR_INVALID_MSGBOX_STYLE
-Windows.Win32.Foundation.ERROR_INVALID_NAME
-Windows.Win32.Foundation.ERROR_INVALID_NETNAME
-Windows.Win32.Foundation.ERROR_INVALID_OPLOCK_PROTOCOL
-Windows.Win32.Foundation.ERROR_INVALID_ORDINAL
-Windows.Win32.Foundation.ERROR_INVALID_OWNER
-Windows.Win32.Foundation.ERROR_INVALID_PACKAGE_SID_LENGTH
-Windows.Win32.Foundation.ERROR_INVALID_PARAMETER
-Windows.Win32.Foundation.ERROR_INVALID_PASSWORD
-Windows.Win32.Foundation.ERROR_INVALID_PASSWORDNAME
-Windows.Win32.Foundation.ERROR_INVALID_PATCH_XML
-Windows.Win32.Foundation.ERROR_INVALID_PEP_INFO_VERSION
-Windows.Win32.Foundation.ERROR_INVALID_PLUGPLAY_DEVICE_PATH
-Windows.Win32.Foundation.ERROR_INVALID_PORT_ATTRIBUTES
-Windows.Win32.Foundation.ERROR_INVALID_PRIMARY_GROUP
-Windows.Win32.Foundation.ERROR_INVALID_PRINTER_COMMAND
-Windows.Win32.Foundation.ERROR_INVALID_PRINTER_NAME
-Windows.Win32.Foundation.ERROR_INVALID_PRINTER_STATE
-Windows.Win32.Foundation.ERROR_INVALID_PRIORITY
-Windows.Win32.Foundation.ERROR_INVALID_QUOTA_LOWER
-Windows.Win32.Foundation.ERROR_INVALID_REPARSE_DATA
-Windows.Win32.Foundation.ERROR_INVALID_SCROLLBAR_RANGE
-Windows.Win32.Foundation.ERROR_INVALID_SECURITY_DESCR
-Windows.Win32.Foundation.ERROR_INVALID_SEGDPL
-Windows.Win32.Foundation.ERROR_INVALID_SEGMENT_NUMBER
-Windows.Win32.Foundation.ERROR_INVALID_SEPARATOR_FILE
-Windows.Win32.Foundation.ERROR_INVALID_SERVER_STATE
-Windows.Win32.Foundation.ERROR_INVALID_SERVICE_ACCOUNT
-Windows.Win32.Foundation.ERROR_INVALID_SERVICE_CONTROL
-Windows.Win32.Foundation.ERROR_INVALID_SERVICE_LOCK
-Windows.Win32.Foundation.ERROR_INVALID_SERVICENAME
-Windows.Win32.Foundation.ERROR_INVALID_SHARENAME
-Windows.Win32.Foundation.ERROR_INVALID_SHOWWIN_COMMAND
-Windows.Win32.Foundation.ERROR_INVALID_SID
-Windows.Win32.Foundation.ERROR_INVALID_SIGNAL_NUMBER
-Windows.Win32.Foundation.ERROR_INVALID_SPI_VALUE
-Windows.Win32.Foundation.ERROR_INVALID_STACKSEG
-Windows.Win32.Foundation.ERROR_INVALID_STARTING_CODESEG
-Windows.Win32.Foundation.ERROR_INVALID_SUB_AUTHORITY
-Windows.Win32.Foundation.ERROR_INVALID_TABLE
-Windows.Win32.Foundation.ERROR_INVALID_TARGET_HANDLE
-Windows.Win32.Foundation.ERROR_INVALID_TASK_INDEX
-Windows.Win32.Foundation.ERROR_INVALID_TASK_NAME
-Windows.Win32.Foundation.ERROR_INVALID_THREAD_ID
-Windows.Win32.Foundation.ERROR_INVALID_TIME
-Windows.Win32.Foundation.ERROR_INVALID_TOKEN
-Windows.Win32.Foundation.ERROR_INVALID_UNWIND_TARGET
-Windows.Win32.Foundation.ERROR_INVALID_USER_BUFFER
-Windows.Win32.Foundation.ERROR_INVALID_USER_PRINCIPAL_NAME
-Windows.Win32.Foundation.ERROR_INVALID_VARIANT
-Windows.Win32.Foundation.ERROR_INVALID_VERIFY_SWITCH
-Windows.Win32.Foundation.ERROR_INVALID_WINDOW_HANDLE
-Windows.Win32.Foundation.ERROR_INVALID_WORKSTATION
-Windows.Win32.Foundation.ERROR_IO_DEVICE
-Windows.Win32.Foundation.ERROR_IO_INCOMPLETE
-Windows.Win32.Foundation.ERROR_IO_PENDING
-Windows.Win32.Foundation.ERROR_IO_PRIVILEGE_FAILED
-Windows.Win32.Foundation.ERROR_IO_REISSUE_AS_CACHED
-Windows.Win32.Foundation.ERROR_IOPL_NOT_ENABLED
-Windows.Win32.Foundation.ERROR_IP_ADDRESS_CONFLICT1
-Windows.Win32.Foundation.ERROR_IP_ADDRESS_CONFLICT2
-Windows.Win32.Foundation.ERROR_IPSEC_IKE_TIMED_OUT
-Windows.Win32.Foundation.ERROR_IRQ_BUSY
-Windows.Win32.Foundation.ERROR_IS_JOIN_PATH
-Windows.Win32.Foundation.ERROR_IS_JOIN_TARGET
-Windows.Win32.Foundation.ERROR_IS_JOINED
-Windows.Win32.Foundation.ERROR_IS_SUBST_PATH
-Windows.Win32.Foundation.ERROR_IS_SUBST_TARGET
-Windows.Win32.Foundation.ERROR_IS_SUBSTED
-Windows.Win32.Foundation.ERROR_ITERATED_DATA_EXCEEDS_64k
-Windows.Win32.Foundation.ERROR_JOB_NO_CONTAINER
-Windows.Win32.Foundation.ERROR_JOIN_TO_JOIN
-Windows.Win32.Foundation.ERROR_JOIN_TO_SUBST
-Windows.Win32.Foundation.ERROR_JOURNAL_DELETE_IN_PROGRESS
-Windows.Win32.Foundation.ERROR_JOURNAL_ENTRY_DELETED
-Windows.Win32.Foundation.ERROR_JOURNAL_HOOK_SET
-Windows.Win32.Foundation.ERROR_JOURNAL_NOT_ACTIVE
-Windows.Win32.Foundation.ERROR_KERNEL_APC
-Windows.Win32.Foundation.ERROR_KEY_DELETED
-Windows.Win32.Foundation.ERROR_KEY_HAS_CHILDREN
-Windows.Win32.Foundation.ERROR_KM_DRIVER_BLOCKED
-Windows.Win32.Foundation.ERROR_LABEL_TOO_LONG
-Windows.Win32.Foundation.ERROR_LAST_ADMIN
-Windows.Win32.Foundation.ERROR_LB_WITHOUT_TABSTOPS
-Windows.Win32.Foundation.ERROR_LICENSE_QUOTA_EXCEEDED
-Windows.Win32.Foundation.ERROR_LINUX_SUBSYSTEM_NOT_PRESENT
-Windows.Win32.Foundation.ERROR_LINUX_SUBSYSTEM_UPDATE_REQUIRED
-Windows.Win32.Foundation.ERROR_LISTBOX_ID_NOT_FOUND
-Windows.Win32.Foundation.ERROR_LM_CROSS_ENCRYPTION_REQUIRED
-Windows.Win32.Foundation.ERROR_LOCAL_POLICY_MODIFICATION_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_LOCAL_USER_SESSION_KEY
-Windows.Win32.Foundation.ERROR_LOCK_FAILED
-Windows.Win32.Foundation.ERROR_LOCK_VIOLATION
-Windows.Win32.Foundation.ERROR_LOCKED
-Windows.Win32.Foundation.ERROR_LOG_FILE_FULL
-Windows.Win32.Foundation.ERROR_LOG_HARD_ERROR
-Windows.Win32.Foundation.ERROR_LOGIN_TIME_RESTRICTION
-Windows.Win32.Foundation.ERROR_LOGIN_WKSTA_RESTRICTION
-Windows.Win32.Foundation.ERROR_LOGON_FAILURE
-Windows.Win32.Foundation.ERROR_LOGON_NOT_GRANTED
-Windows.Win32.Foundation.ERROR_LOGON_SERVER_CONFLICT
-Windows.Win32.Foundation.ERROR_LOGON_SESSION_COLLISION
-Windows.Win32.Foundation.ERROR_LOGON_SESSION_EXISTS
-Windows.Win32.Foundation.ERROR_LOGON_TYPE_NOT_GRANTED
-Windows.Win32.Foundation.ERROR_LONGJUMP
-Windows.Win32.Foundation.ERROR_LOST_MODE_LOGON_RESTRICTION
-Windows.Win32.Foundation.ERROR_LOST_WRITEBEHIND_DATA
-Windows.Win32.Foundation.ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR
-Windows.Win32.Foundation.ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED
-Windows.Win32.Foundation.ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR
-Windows.Win32.Foundation.ERROR_LUIDS_EXHAUSTED
-Windows.Win32.Foundation.ERROR_MACHINE_LOCKED
-Windows.Win32.Foundation.ERROR_MAGAZINE_NOT_PRESENT
-Windows.Win32.Foundation.ERROR_MAPPED_ALIGNMENT
-Windows.Win32.Foundation.ERROR_MARKED_TO_DISALLOW_WRITES
-Windows.Win32.Foundation.ERROR_MARSHALL_OVERFLOW
-Windows.Win32.Foundation.ERROR_MAX_SESSIONS_REACHED
-Windows.Win32.Foundation.ERROR_MAX_THRDS_REACHED
-Windows.Win32.Foundation.ERROR_MCA_EXCEPTION
-Windows.Win32.Foundation.ERROR_MCA_OCCURED
-Windows.Win32.Foundation.ERROR_MEDIA_CHANGED
-Windows.Win32.Foundation.ERROR_MEDIA_CHECK
-Windows.Win32.Foundation.ERROR_MEMBER_IN_ALIAS
-Windows.Win32.Foundation.ERROR_MEMBER_IN_GROUP
-Windows.Win32.Foundation.ERROR_MEMBER_NOT_IN_ALIAS
-Windows.Win32.Foundation.ERROR_MEMBER_NOT_IN_GROUP
-Windows.Win32.Foundation.ERROR_MEMBERS_PRIMARY_GROUP
-Windows.Win32.Foundation.ERROR_MEMORY_HARDWARE
-Windows.Win32.Foundation.ERROR_MENU_ITEM_NOT_FOUND
-Windows.Win32.Foundation.ERROR_MESSAGE_SYNC_ONLY
-Windows.Win32.Foundation.ERROR_META_EXPANSION_TOO_LONG
-Windows.Win32.Foundation.ERROR_MISSING_SYSTEMFILE
-Windows.Win32.Foundation.ERROR_MOD_NOT_FOUND
-Windows.Win32.Foundation.ERROR_MORE_DATA
-Windows.Win32.Foundation.ERROR_MORE_WRITES
-Windows.Win32.Foundation.ERROR_MOUNT_POINT_NOT_RESOLVED
-Windows.Win32.Foundation.ERROR_MP_PROCESSOR_MISMATCH
-Windows.Win32.Foundation.ERROR_MR_MID_NOT_FOUND
-Windows.Win32.Foundation.ERROR_MULTIPLE_FAULT_VIOLATION
-Windows.Win32.Foundation.ERROR_MUTANT_LIMIT_EXCEEDED
-Windows.Win32.Foundation.ERROR_MUTUAL_AUTH_FAILED
-Windows.Win32.Foundation.ERROR_NEGATIVE_SEEK
-Windows.Win32.Foundation.ERROR_NESTING_NOT_ALLOWED
-Windows.Win32.Foundation.ERROR_NET_OPEN_FAILED
-Windows.Win32.Foundation.ERROR_NET_WRITE_FAULT
-Windows.Win32.Foundation.ERROR_NETLOGON_NOT_STARTED
-Windows.Win32.Foundation.ERROR_NETNAME_DELETED
-Windows.Win32.Foundation.ERROR_NETWORK_ACCESS_DENIED
-Windows.Win32.Foundation.ERROR_NETWORK_ACCESS_DENIED_EDP
-Windows.Win32.Foundation.ERROR_NETWORK_BUSY
-Windows.Win32.Foundation.ERROR_NETWORK_UNREACHABLE
-Windows.Win32.Foundation.ERROR_NO_ACE_CONDITION
-Windows.Win32.Foundation.ERROR_NO_ASSOCIATION
-Windows.Win32.Foundation.ERROR_NO_BYPASSIO_DRIVER_SUPPORT
-Windows.Win32.Foundation.ERROR_NO_CALLBACK_ACTIVE
-Windows.Win32.Foundation.ERROR_NO_DATA
-Windows.Win32.Foundation.ERROR_NO_DATA_DETECTED
-Windows.Win32.Foundation.ERROR_NO_EFS
-Windows.Win32.Foundation.ERROR_NO_EVENT_PAIR
-Windows.Win32.Foundation.ERROR_NO_GUID_TRANSLATION
-Windows.Win32.Foundation.ERROR_NO_IMPERSONATION_TOKEN
-Windows.Win32.Foundation.ERROR_NO_INHERITANCE
-Windows.Win32.Foundation.ERROR_NO_LOG_SPACE
-Windows.Win32.Foundation.ERROR_NO_LOGON_SERVERS
-Windows.Win32.Foundation.ERROR_NO_MATCH
-Windows.Win32.Foundation.ERROR_NO_MEDIA_IN_DRIVE
-Windows.Win32.Foundation.ERROR_NO_MORE_DEVICES
-Windows.Win32.Foundation.ERROR_NO_MORE_FILES
-Windows.Win32.Foundation.ERROR_NO_MORE_ITEMS
-Windows.Win32.Foundation.ERROR_NO_MORE_MATCHES
-Windows.Win32.Foundation.ERROR_NO_MORE_SEARCH_HANDLES
-Windows.Win32.Foundation.ERROR_NO_MORE_USER_HANDLES
-Windows.Win32.Foundation.ERROR_NO_NET_OR_BAD_PATH
-Windows.Win32.Foundation.ERROR_NO_NETWORK
-Windows.Win32.Foundation.ERROR_NO_NVRAM_RESOURCES
-Windows.Win32.Foundation.ERROR_NO_PAGEFILE
-Windows.Win32.Foundation.ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND
-Windows.Win32.Foundation.ERROR_NO_PROC_SLOTS
-Windows.Win32.Foundation.ERROR_NO_PROMOTION_ACTIVE
-Windows.Win32.Foundation.ERROR_NO_QUOTAS_FOR_ACCOUNT
-Windows.Win32.Foundation.ERROR_NO_RANGES_PROCESSED
-Windows.Win32.Foundation.ERROR_NO_RECOVERY_POLICY
-Windows.Win32.Foundation.ERROR_NO_RECOVERY_PROGRAM
-Windows.Win32.Foundation.ERROR_NO_SCROLLBARS
-Windows.Win32.Foundation.ERROR_NO_SECRETS
-Windows.Win32.Foundation.ERROR_NO_SECURITY_ON_OBJECT
-Windows.Win32.Foundation.ERROR_NO_SHUTDOWN_IN_PROGRESS
-Windows.Win32.Foundation.ERROR_NO_SIGNAL_SENT
-Windows.Win32.Foundation.ERROR_NO_SITE_SETTINGS_OBJECT
-Windows.Win32.Foundation.ERROR_NO_SITENAME
-Windows.Win32.Foundation.ERROR_NO_SPOOL_SPACE
-Windows.Win32.Foundation.ERROR_NO_SUCH_ALIAS
-Windows.Win32.Foundation.ERROR_NO_SUCH_DEVICE
-Windows.Win32.Foundation.ERROR_NO_SUCH_DOMAIN
-Windows.Win32.Foundation.ERROR_NO_SUCH_GROUP
-Windows.Win32.Foundation.ERROR_NO_SUCH_LOGON_SESSION
-Windows.Win32.Foundation.ERROR_NO_SUCH_MEMBER
-Windows.Win32.Foundation.ERROR_NO_SUCH_PACKAGE
-Windows.Win32.Foundation.ERROR_NO_SUCH_PRIVILEGE
-Windows.Win32.Foundation.ERROR_NO_SUCH_SITE
-Windows.Win32.Foundation.ERROR_NO_SUCH_USER
-Windows.Win32.Foundation.ERROR_NO_SYSTEM_MENU
-Windows.Win32.Foundation.ERROR_NO_SYSTEM_RESOURCES
-Windows.Win32.Foundation.ERROR_NO_TASK_QUEUE
-Windows.Win32.Foundation.ERROR_NO_TOKEN
-Windows.Win32.Foundation.ERROR_NO_TRACKING_SERVICE
-Windows.Win32.Foundation.ERROR_NO_TRUST_LSA_SECRET
-Windows.Win32.Foundation.ERROR_NO_TRUST_SAM_ACCOUNT
-Windows.Win32.Foundation.ERROR_NO_UNICODE_TRANSLATION
-Windows.Win32.Foundation.ERROR_NO_USER_KEYS
-Windows.Win32.Foundation.ERROR_NO_USER_SESSION_KEY
-Windows.Win32.Foundation.ERROR_NO_VOLUME_ID
-Windows.Win32.Foundation.ERROR_NO_VOLUME_LABEL
-Windows.Win32.Foundation.ERROR_NO_WILDCARD_CHARACTERS
-Windows.Win32.Foundation.ERROR_NO_WORK_DONE
-Windows.Win32.Foundation.ERROR_NO_WRITABLE_DC_FOUND
-Windows.Win32.Foundation.ERROR_NO_YIELD_PERFORMED
-Windows.Win32.Foundation.ERROR_NOACCESS
-Windows.Win32.Foundation.ERROR_NOINTERFACE
-Windows.Win32.Foundation.ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT
-Windows.Win32.Foundation.ERROR_NOLOGON_SERVER_TRUST_ACCOUNT
-Windows.Win32.Foundation.ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT
-Windows.Win32.Foundation.ERROR_NON_ACCOUNT_SID
-Windows.Win32.Foundation.ERROR_NON_DOMAIN_SID
-Windows.Win32.Foundation.ERROR_NON_MDICHILD_WINDOW
-Windows.Win32.Foundation.ERROR_NONE_MAPPED
-Windows.Win32.Foundation.ERROR_NONPAGED_SYSTEM_RESOURCES
-Windows.Win32.Foundation.ERROR_NOT_A_CLOUD_FILE
-Windows.Win32.Foundation.ERROR_NOT_A_CLOUD_SYNC_ROOT
-Windows.Win32.Foundation.ERROR_NOT_A_DAX_VOLUME
-Windows.Win32.Foundation.ERROR_NOT_A_REPARSE_POINT
-Windows.Win32.Foundation.ERROR_NOT_ALL_ASSIGNED
-Windows.Win32.Foundation.ERROR_NOT_ALLOWED_ON_SYSTEM_FILE
-Windows.Win32.Foundation.ERROR_NOT_APPCONTAINER
-Windows.Win32.Foundation.ERROR_NOT_AUTHENTICATED
-Windows.Win32.Foundation.ERROR_NOT_CAPABLE
-Windows.Win32.Foundation.ERROR_NOT_CHILD_WINDOW
-Windows.Win32.Foundation.ERROR_NOT_CONNECTED
-Windows.Win32.Foundation.ERROR_NOT_CONTAINER
-Windows.Win32.Foundation.ERROR_NOT_DAX_MAPPABLE
-Windows.Win32.Foundation.ERROR_NOT_DOS_DISK
-Windows.Win32.Foundation.ERROR_NOT_ENOUGH_MEMORY
-Windows.Win32.Foundation.ERROR_NOT_ENOUGH_QUOTA
-Windows.Win32.Foundation.ERROR_NOT_ENOUGH_SERVER_MEMORY
-Windows.Win32.Foundation.ERROR_NOT_EXPORT_FORMAT
-Windows.Win32.Foundation.ERROR_NOT_FOUND
-Windows.Win32.Foundation.ERROR_NOT_GUI_PROCESS
-Windows.Win32.Foundation.ERROR_NOT_JOINED
-Windows.Win32.Foundation.ERROR_NOT_LOCKED
-Windows.Win32.Foundation.ERROR_NOT_LOGGED_ON
-Windows.Win32.Foundation.ERROR_NOT_LOGON_PROCESS
-Windows.Win32.Foundation.ERROR_NOT_OWNER
-Windows.Win32.Foundation.ERROR_NOT_READ_FROM_COPY
-Windows.Win32.Foundation.ERROR_NOT_READY
-Windows.Win32.Foundation.ERROR_NOT_REDUNDANT_STORAGE
-Windows.Win32.Foundation.ERROR_NOT_REGISTRY_FILE
-Windows.Win32.Foundation.ERROR_NOT_SAFE_MODE_DRIVER
-Windows.Win32.Foundation.ERROR_NOT_SAFEBOOT_SERVICE
-Windows.Win32.Foundation.ERROR_NOT_SAME_DEVICE
-Windows.Win32.Foundation.ERROR_NOT_SAME_OBJECT
-Windows.Win32.Foundation.ERROR_NOT_SUBSTED
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_IN_APPCONTAINER
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_ON_DAX
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_ON_SBS
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_WITH_AUDITING
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_WITH_BTT
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_WITH_BYPASSIO
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_WITH_CACHED_HANDLE
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_WITH_COMPRESSION
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_WITH_DEDUPLICATION
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_WITH_ENCRYPTION
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_WITH_MONITORING
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_WITH_REPLICATION
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_WITH_SNAPSHOT
-Windows.Win32.Foundation.ERROR_NOT_SUPPORTED_WITH_VIRTUALIZATION
-Windows.Win32.Foundation.ERROR_NOT_TINY_STREAM
-Windows.Win32.Foundation.ERROR_NOTHING_TO_TERMINATE
-Windows.Win32.Foundation.ERROR_NOTIFICATION_GUID_ALREADY_DEFINED
-Windows.Win32.Foundation.ERROR_NOTIFY_CLEANUP
-Windows.Win32.Foundation.ERROR_NOTIFY_ENUM_DIR
-Windows.Win32.Foundation.ERROR_NT_CROSS_ENCRYPTION_REQUIRED
-Windows.Win32.Foundation.ERROR_NTLM_BLOCKED
-Windows.Win32.Foundation.ERROR_NULL_LM_PASSWORD
-Windows.Win32.Foundation.ERROR_OBJECT_IS_IMMUTABLE
-Windows.Win32.Foundation.ERROR_OBJECT_NAME_EXISTS
-Windows.Win32.Foundation.ERROR_OBJECT_NOT_EXTERNALLY_BACKED
-Windows.Win32.Foundation.ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_OFFSET_ALIGNMENT_VIOLATION
-Windows.Win32.Foundation.ERROR_OLD_WIN_VERSION
-Windows.Win32.Foundation.ERROR_ONLY_IF_CONNECTED
-Windows.Win32.Foundation.ERROR_OPEN_FAILED
-Windows.Win32.Foundation.ERROR_OPEN_FILES
-Windows.Win32.Foundation.ERROR_OPERATION_ABORTED
-Windows.Win32.Foundation.ERROR_OPERATION_IN_PROGRESS
-Windows.Win32.Foundation.ERROR_OPLOCK_BREAK_IN_PROGRESS
-Windows.Win32.Foundation.ERROR_OPLOCK_HANDLE_CLOSED
-Windows.Win32.Foundation.ERROR_OPLOCK_NOT_GRANTED
-Windows.Win32.Foundation.ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE
-Windows.Win32.Foundation.ERROR_ORPHAN_NAME_EXHAUSTED
-Windows.Win32.Foundation.ERROR_OUT_OF_PAPER
-Windows.Win32.Foundation.ERROR_OUT_OF_STRUCTURES
-Windows.Win32.Foundation.ERROR_OUTOFMEMORY
-Windows.Win32.Foundation.ERROR_OVERRIDE_NOCHANGES
-Windows.Win32.Foundation.ERROR_PAGE_FAULT_COPY_ON_WRITE
-Windows.Win32.Foundation.ERROR_PAGE_FAULT_DEMAND_ZERO
-Windows.Win32.Foundation.ERROR_PAGE_FAULT_GUARD_PAGE
-Windows.Win32.Foundation.ERROR_PAGE_FAULT_PAGING_FILE
-Windows.Win32.Foundation.ERROR_PAGE_FAULT_TRANSITION
-Windows.Win32.Foundation.ERROR_PAGED_SYSTEM_RESOURCES
-Windows.Win32.Foundation.ERROR_PAGEFILE_CREATE_FAILED
-Windows.Win32.Foundation.ERROR_PAGEFILE_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_PAGEFILE_QUOTA
-Windows.Win32.Foundation.ERROR_PAGEFILE_QUOTA_EXCEEDED
-Windows.Win32.Foundation.ERROR_PARAMETER_QUOTA_EXCEEDED
-Windows.Win32.Foundation.ERROR_PARTIAL_COPY
-Windows.Win32.Foundation.ERROR_PARTITION_FAILURE
-Windows.Win32.Foundation.ERROR_PARTITION_TERMINATING
-Windows.Win32.Foundation.ERROR_PASSWORD_CHANGE_REQUIRED
-Windows.Win32.Foundation.ERROR_PASSWORD_EXPIRED
-Windows.Win32.Foundation.ERROR_PASSWORD_MUST_CHANGE
-Windows.Win32.Foundation.ERROR_PASSWORD_RESTRICTION
-Windows.Win32.Foundation.ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT
-Windows.Win32.Foundation.ERROR_PATCH_NO_SEQUENCE
-Windows.Win32.Foundation.ERROR_PATCH_PACKAGE_INVALID
-Windows.Win32.Foundation.ERROR_PATCH_PACKAGE_OPEN_FAILED
-Windows.Win32.Foundation.ERROR_PATCH_PACKAGE_REJECTED
-Windows.Win32.Foundation.ERROR_PATCH_PACKAGE_UNSUPPORTED
-Windows.Win32.Foundation.ERROR_PATCH_REMOVAL_DISALLOWED
-Windows.Win32.Foundation.ERROR_PATCH_REMOVAL_UNSUPPORTED
-Windows.Win32.Foundation.ERROR_PATCH_TARGET_NOT_FOUND
-Windows.Win32.Foundation.ERROR_PATH_BUSY
-Windows.Win32.Foundation.ERROR_PATH_NOT_FOUND
-Windows.Win32.Foundation.ERROR_PER_USER_TRUST_QUOTA_EXCEEDED
-Windows.Win32.Foundation.ERROR_PIPE_BUSY
-Windows.Win32.Foundation.ERROR_PIPE_CONNECTED
-Windows.Win32.Foundation.ERROR_PIPE_LISTENING
-Windows.Win32.Foundation.ERROR_PIPE_LOCAL
-Windows.Win32.Foundation.ERROR_PIPE_NOT_CONNECTED
-Windows.Win32.Foundation.ERROR_PKINIT_FAILURE
-Windows.Win32.Foundation.ERROR_PLUGPLAY_QUERY_VETOED
-Windows.Win32.Foundation.ERROR_PNP_BAD_MPS_TABLE
-Windows.Win32.Foundation.ERROR_PNP_INVALID_ID
-Windows.Win32.Foundation.ERROR_PNP_IRQ_TRANSLATION_FAILED
-Windows.Win32.Foundation.ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT
-Windows.Win32.Foundation.ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT
-Windows.Win32.Foundation.ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT
-Windows.Win32.Foundation.ERROR_PNP_REBOOT_REQUIRED
-Windows.Win32.Foundation.ERROR_PNP_RESTART_ENUMERATION
-Windows.Win32.Foundation.ERROR_PNP_TRANSLATION_FAILED
-Windows.Win32.Foundation.ERROR_POINT_NOT_FOUND
-Windows.Win32.Foundation.ERROR_POLICY_OBJECT_NOT_FOUND
-Windows.Win32.Foundation.ERROR_POLICY_ONLY_IN_DS
-Windows.Win32.Foundation.ERROR_POPUP_ALREADY_ACTIVE
-Windows.Win32.Foundation.ERROR_PORT_MESSAGE_TOO_LONG
-Windows.Win32.Foundation.ERROR_PORT_NOT_SET
-Windows.Win32.Foundation.ERROR_PORT_UNREACHABLE
-Windows.Win32.Foundation.ERROR_POSSIBLE_DEADLOCK
-Windows.Win32.Foundation.ERROR_POTENTIAL_FILE_FOUND
-Windows.Win32.Foundation.ERROR_PREDEFINED_HANDLE
-Windows.Win32.Foundation.ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED
-Windows.Win32.Foundation.ERROR_PRINT_CANCELLED
-Windows.Win32.Foundation.ERROR_PRINTER_ALREADY_EXISTS
-Windows.Win32.Foundation.ERROR_PRINTER_DELETED
-Windows.Win32.Foundation.ERROR_PRINTER_DRIVER_ALREADY_INSTALLED
-Windows.Win32.Foundation.ERROR_PRINTQ_FULL
-Windows.Win32.Foundation.ERROR_PRIVATE_DIALOG_INDEX
-Windows.Win32.Foundation.ERROR_PRIVILEGE_NOT_HELD
-Windows.Win32.Foundation.ERROR_PROC_NOT_FOUND
-Windows.Win32.Foundation.ERROR_PROCESS_ABORTED
-Windows.Win32.Foundation.ERROR_PROCESS_IN_JOB
-Windows.Win32.Foundation.ERROR_PROCESS_IS_PROTECTED
-Windows.Win32.Foundation.ERROR_PROCESS_MODE_ALREADY_BACKGROUND
-Windows.Win32.Foundation.ERROR_PROCESS_MODE_NOT_BACKGROUND
-Windows.Win32.Foundation.ERROR_PROCESS_NOT_IN_JOB
-Windows.Win32.Foundation.ERROR_PRODUCT_UNINSTALLED
-Windows.Win32.Foundation.ERROR_PRODUCT_VERSION
-Windows.Win32.Foundation.ERROR_PROFILING_AT_LIMIT
-Windows.Win32.Foundation.ERROR_PROFILING_NOT_STARTED
-Windows.Win32.Foundation.ERROR_PROFILING_NOT_STOPPED
-Windows.Win32.Foundation.ERROR_PROMOTION_ACTIVE
-Windows.Win32.Foundation.ERROR_PROTOCOL_UNREACHABLE
-Windows.Win32.Foundation.ERROR_PWD_HISTORY_CONFLICT
-Windows.Win32.Foundation.ERROR_PWD_TOO_LONG
-Windows.Win32.Foundation.ERROR_PWD_TOO_RECENT
-Windows.Win32.Foundation.ERROR_PWD_TOO_SHORT
-Windows.Win32.Foundation.ERROR_QUOTA_ACTIVITY
-Windows.Win32.Foundation.ERROR_QUOTA_LIST_INCONSISTENT
-Windows.Win32.Foundation.ERROR_RANGE_LIST_CONFLICT
-Windows.Win32.Foundation.ERROR_RANGE_NOT_FOUND
-Windows.Win32.Foundation.ERROR_READ_FAULT
-Windows.Win32.Foundation.ERROR_RECEIVE_EXPEDITED
-Windows.Win32.Foundation.ERROR_RECEIVE_PARTIAL
-Windows.Win32.Foundation.ERROR_RECEIVE_PARTIAL_EXPEDITED
-Windows.Win32.Foundation.ERROR_RECOVERY_FAILURE
-Windows.Win32.Foundation.ERROR_REDIR_PAUSED
-Windows.Win32.Foundation.ERROR_REDIRECTOR_HAS_OPEN_HANDLES
-Windows.Win32.Foundation.ERROR_REG_NAT_CONSUMPTION
-Windows.Win32.Foundation.ERROR_REGISTRY_CORRUPT
-Windows.Win32.Foundation.ERROR_REGISTRY_HIVE_RECOVERED
-Windows.Win32.Foundation.ERROR_REGISTRY_IO_FAILED
-Windows.Win32.Foundation.ERROR_REGISTRY_QUOTA_LIMIT
-Windows.Win32.Foundation.ERROR_REGISTRY_RECOVERED
-Windows.Win32.Foundation.ERROR_RELOC_CHAIN_XEEDS_SEGLIM
-Windows.Win32.Foundation.ERROR_REM_NOT_LIST
-Windows.Win32.Foundation.ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED
-Windows.Win32.Foundation.ERROR_REMOTE_SESSION_LIMIT_EXCEEDED
-Windows.Win32.Foundation.ERROR_REMOTE_STORAGE_MEDIA_ERROR
-Windows.Win32.Foundation.ERROR_REMOTE_STORAGE_NOT_ACTIVE
-Windows.Win32.Foundation.ERROR_REPARSE
-Windows.Win32.Foundation.ERROR_REPARSE_ATTRIBUTE_CONFLICT
-Windows.Win32.Foundation.ERROR_REPARSE_OBJECT
-Windows.Win32.Foundation.ERROR_REPARSE_POINT_ENCOUNTERED
-Windows.Win32.Foundation.ERROR_REPARSE_TAG_INVALID
-Windows.Win32.Foundation.ERROR_REPARSE_TAG_MISMATCH
-Windows.Win32.Foundation.ERROR_REPLY_MESSAGE_MISMATCH
-Windows.Win32.Foundation.ERROR_REQ_NOT_ACCEP
-Windows.Win32.Foundation.ERROR_REQUEST_ABORTED
-Windows.Win32.Foundation.ERROR_REQUEST_OUT_OF_SEQUENCE
-Windows.Win32.Foundation.ERROR_REQUEST_PAUSED
-Windows.Win32.Foundation.ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
-Windows.Win32.Foundation.ERROR_RESIDENT_FILE_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_RESOURCE_CALL_TIMED_OUT
-Windows.Win32.Foundation.ERROR_RESOURCE_DATA_NOT_FOUND
-Windows.Win32.Foundation.ERROR_RESOURCE_LANG_NOT_FOUND
-Windows.Win32.Foundation.ERROR_RESOURCE_NAME_NOT_FOUND
-Windows.Win32.Foundation.ERROR_RESOURCE_REQUIREMENTS_CHANGED
-Windows.Win32.Foundation.ERROR_RESOURCE_TYPE_NOT_FOUND
-Windows.Win32.Foundation.ERROR_RESTART_APPLICATION
-Windows.Win32.Foundation.ERROR_RESUME_HIBERNATION
-Windows.Win32.Foundation.ERROR_RETRY
-Windows.Win32.Foundation.ERROR_RETURN_ADDRESS_HIJACK_ATTEMPT
-Windows.Win32.Foundation.ERROR_REVISION_MISMATCH
-Windows.Win32.Foundation.ERROR_RING2_STACK_IN_USE
-Windows.Win32.Foundation.ERROR_RING2SEG_MUST_BE_MOVABLE
-Windows.Win32.Foundation.ERROR_RMODE_APP
-Windows.Win32.Foundation.ERROR_ROWSNOTRELEASED
-Windows.Win32.Foundation.ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT
-Windows.Win32.Foundation.ERROR_RUNLEVEL_SWITCH_TIMEOUT
-Windows.Win32.Foundation.ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED
-Windows.Win32.Foundation.ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET
-Windows.Win32.Foundation.ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE
-Windows.Win32.Foundation.ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER
-Windows.Win32.Foundation.ERROR_RXACT_COMMIT_FAILURE
-Windows.Win32.Foundation.ERROR_RXACT_COMMIT_NECESSARY
-Windows.Win32.Foundation.ERROR_RXACT_COMMITTED
-Windows.Win32.Foundation.ERROR_RXACT_INVALID_STATE
-Windows.Win32.Foundation.ERROR_RXACT_STATE_CREATED
-Windows.Win32.Foundation.ERROR_SAM_INIT_FAILURE
-Windows.Win32.Foundation.ERROR_SAME_DRIVE
-Windows.Win32.Foundation.ERROR_SCOPE_NOT_FOUND
-Windows.Win32.Foundation.ERROR_SCREEN_ALREADY_LOCKED
-Windows.Win32.Foundation.ERROR_SCRUB_DATA_DISABLED
-Windows.Win32.Foundation.ERROR_SECRET_TOO_LONG
-Windows.Win32.Foundation.ERROR_SECTION_DIRECT_MAP_ONLY
-Windows.Win32.Foundation.ERROR_SECTOR_NOT_FOUND
-Windows.Win32.Foundation.ERROR_SECURITY_DENIES_OPERATION
-Windows.Win32.Foundation.ERROR_SECURITY_STREAM_IS_INCONSISTENT
-Windows.Win32.Foundation.ERROR_SEEK
-Windows.Win32.Foundation.ERROR_SEEK_ON_DEVICE
-Windows.Win32.Foundation.ERROR_SEGMENT_NOTIFICATION
-Windows.Win32.Foundation.ERROR_SEM_IS_SET
-Windows.Win32.Foundation.ERROR_SEM_NOT_FOUND
-Windows.Win32.Foundation.ERROR_SEM_OWNER_DIED
-Windows.Win32.Foundation.ERROR_SEM_TIMEOUT
-Windows.Win32.Foundation.ERROR_SEM_USER_LIMIT
-Windows.Win32.Foundation.ERROR_SERIAL_NO_DEVICE
-Windows.Win32.Foundation.ERROR_SERVER_DISABLED
-Windows.Win32.Foundation.ERROR_SERVER_HAS_OPEN_HANDLES
-Windows.Win32.Foundation.ERROR_SERVER_NOT_DISABLED
-Windows.Win32.Foundation.ERROR_SERVER_SHUTDOWN_IN_PROGRESS
-Windows.Win32.Foundation.ERROR_SERVER_SID_MISMATCH
-Windows.Win32.Foundation.ERROR_SERVER_TRANSPORT_CONFLICT
-Windows.Win32.Foundation.ERROR_SERVICE_ALREADY_RUNNING
-Windows.Win32.Foundation.ERROR_SERVICE_CANNOT_ACCEPT_CTRL
-Windows.Win32.Foundation.ERROR_SERVICE_DATABASE_LOCKED
-Windows.Win32.Foundation.ERROR_SERVICE_DEPENDENCY_DELETED
-Windows.Win32.Foundation.ERROR_SERVICE_DEPENDENCY_FAIL
-Windows.Win32.Foundation.ERROR_SERVICE_DISABLED
-Windows.Win32.Foundation.ERROR_SERVICE_DOES_NOT_EXIST
-Windows.Win32.Foundation.ERROR_SERVICE_EXISTS
-Windows.Win32.Foundation.ERROR_SERVICE_LOGON_FAILED
-Windows.Win32.Foundation.ERROR_SERVICE_MARKED_FOR_DELETE
-Windows.Win32.Foundation.ERROR_SERVICE_NEVER_STARTED
-Windows.Win32.Foundation.ERROR_SERVICE_NO_THREAD
-Windows.Win32.Foundation.ERROR_SERVICE_NOT_ACTIVE
-Windows.Win32.Foundation.ERROR_SERVICE_NOT_FOUND
-Windows.Win32.Foundation.ERROR_SERVICE_NOT_IN_EXE
-Windows.Win32.Foundation.ERROR_SERVICE_NOTIFICATION
-Windows.Win32.Foundation.ERROR_SERVICE_NOTIFY_CLIENT_LAGGING
-Windows.Win32.Foundation.ERROR_SERVICE_REQUEST_TIMEOUT
-Windows.Win32.Foundation.ERROR_SERVICE_SPECIFIC_ERROR
-Windows.Win32.Foundation.ERROR_SERVICE_START_HANG
-Windows.Win32.Foundation.ERROR_SESSION_CREDENTIAL_CONFLICT
-Windows.Win32.Foundation.ERROR_SESSION_KEY_TOO_SHORT
-Windows.Win32.Foundation.ERROR_SET_CONTEXT_DENIED
-Windows.Win32.Foundation.ERROR_SET_NOT_FOUND
-Windows.Win32.Foundation.ERROR_SET_POWER_STATE_FAILED
-Windows.Win32.Foundation.ERROR_SET_POWER_STATE_VETOED
-Windows.Win32.Foundation.ERROR_SETCOUNT_ON_BAD_LB
-Windows.Win32.Foundation.ERROR_SETMARK_DETECTED
-Windows.Win32.Foundation.ERROR_SHARED_POLICY
-Windows.Win32.Foundation.ERROR_SHARING_BUFFER_EXCEEDED
-Windows.Win32.Foundation.ERROR_SHARING_PAUSED
-Windows.Win32.Foundation.ERROR_SHARING_VIOLATION
-Windows.Win32.Foundation.ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME
-Windows.Win32.Foundation.ERROR_SHUTDOWN_DISKS_NOT_IN_MAINTENANCE_MODE
-Windows.Win32.Foundation.ERROR_SHUTDOWN_IN_PROGRESS
-Windows.Win32.Foundation.ERROR_SHUTDOWN_IS_SCHEDULED
-Windows.Win32.Foundation.ERROR_SHUTDOWN_USERS_LOGGED_ON
-Windows.Win32.Foundation.ERROR_SIGNAL_PENDING
-Windows.Win32.Foundation.ERROR_SIGNAL_REFUSED
-Windows.Win32.Foundation.ERROR_SINGLE_INSTANCE_APP
-Windows.Win32.Foundation.ERROR_SMARTCARD_SUBSYSTEM_FAILURE
-Windows.Win32.Foundation.ERROR_SMB1_NOT_AVAILABLE
-Windows.Win32.Foundation.ERROR_SMB_GUEST_LOGON_BLOCKED
-Windows.Win32.Foundation.ERROR_SMR_GARBAGE_COLLECTION_REQUIRED
-Windows.Win32.Foundation.ERROR_SOME_NOT_MAPPED
-Windows.Win32.Foundation.ERROR_SOURCE_ELEMENT_EMPTY
-Windows.Win32.Foundation.ERROR_SPARSE_FILE_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_SPECIAL_ACCOUNT
-Windows.Win32.Foundation.ERROR_SPECIAL_GROUP
-Windows.Win32.Foundation.ERROR_SPECIAL_USER
-Windows.Win32.Foundation.ERROR_SRC_SRV_DLL_LOAD_FAILED
-Windows.Win32.Foundation.ERROR_STACK_BUFFER_OVERRUN
-Windows.Win32.Foundation.ERROR_STACK_OVERFLOW
-Windows.Win32.Foundation.ERROR_STACK_OVERFLOW_READ
-Windows.Win32.Foundation.ERROR_STOPPED_ON_SYMLINK
-Windows.Win32.Foundation.ERROR_STORAGE_LOST_DATA_PERSISTENCE
-Windows.Win32.Foundation.ERROR_STORAGE_RESERVE_ALREADY_EXISTS
-Windows.Win32.Foundation.ERROR_STORAGE_RESERVE_DOES_NOT_EXIST
-Windows.Win32.Foundation.ERROR_STORAGE_RESERVE_ID_INVALID
-Windows.Win32.Foundation.ERROR_STORAGE_RESERVE_NOT_EMPTY
-Windows.Win32.Foundation.ERROR_STORAGE_STACK_ACCESS_DENIED
-Windows.Win32.Foundation.ERROR_STORAGE_TOPOLOGY_ID_MISMATCH
-Windows.Win32.Foundation.ERROR_STRICT_CFG_VIOLATION
-Windows.Win32.Foundation.ERROR_SUBST_TO_JOIN
-Windows.Win32.Foundation.ERROR_SUBST_TO_SUBST
-Windows.Win32.Foundation.ERROR_SUCCESS
-Windows.Win32.Foundation.ERROR_SUCCESS_REBOOT_INITIATED
-Windows.Win32.Foundation.ERROR_SWAPERROR
-Windows.Win32.Foundation.ERROR_SYMLINK_CLASS_DISABLED
-Windows.Win32.Foundation.ERROR_SYMLINK_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED
-Windows.Win32.Foundation.ERROR_SYNCHRONIZATION_REQUIRED
-Windows.Win32.Foundation.ERROR_SYSTEM_HIVE_TOO_LARGE
-Windows.Win32.Foundation.ERROR_SYSTEM_IMAGE_BAD_SIGNATURE
-Windows.Win32.Foundation.ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION
-Windows.Win32.Foundation.ERROR_SYSTEM_POWERSTATE_TRANSITION
-Windows.Win32.Foundation.ERROR_SYSTEM_PROCESS_TERMINATED
-Windows.Win32.Foundation.ERROR_SYSTEM_SHUTDOWN
-Windows.Win32.Foundation.ERROR_SYSTEM_TRACE
-Windows.Win32.Foundation.ERROR_THREAD_1_INACTIVE
-Windows.Win32.Foundation.ERROR_THREAD_ALREADY_IN_TASK
-Windows.Win32.Foundation.ERROR_THREAD_MODE_ALREADY_BACKGROUND
-Windows.Win32.Foundation.ERROR_THREAD_MODE_NOT_BACKGROUND
-Windows.Win32.Foundation.ERROR_THREAD_NOT_IN_PROCESS
-Windows.Win32.Foundation.ERROR_THREAD_WAS_SUSPENDED
-Windows.Win32.Foundation.ERROR_TIME_SENSITIVE_THREAD
-Windows.Win32.Foundation.ERROR_TIME_SKEW
-Windows.Win32.Foundation.ERROR_TIMEOUT
-Windows.Win32.Foundation.ERROR_TIMER_NOT_CANCELED
-Windows.Win32.Foundation.ERROR_TIMER_RESOLUTION_NOT_SET
-Windows.Win32.Foundation.ERROR_TIMER_RESUME_IGNORED
-Windows.Win32.Foundation.ERROR_TLW_WITH_WSCHILD
-Windows.Win32.Foundation.ERROR_TOKEN_ALREADY_IN_USE
-Windows.Win32.Foundation.ERROR_TOO_MANY_CMDS
-Windows.Win32.Foundation.ERROR_TOO_MANY_CONTEXT_IDS
-Windows.Win32.Foundation.ERROR_TOO_MANY_DESCRIPTORS
-Windows.Win32.Foundation.ERROR_TOO_MANY_LINKS
-Windows.Win32.Foundation.ERROR_TOO_MANY_LUIDS_REQUESTED
-Windows.Win32.Foundation.ERROR_TOO_MANY_MODULES
-Windows.Win32.Foundation.ERROR_TOO_MANY_MUXWAITERS
-Windows.Win32.Foundation.ERROR_TOO_MANY_NAMES
-Windows.Win32.Foundation.ERROR_TOO_MANY_OPEN_FILES
-Windows.Win32.Foundation.ERROR_TOO_MANY_POSTS
-Windows.Win32.Foundation.ERROR_TOO_MANY_SECRETS
-Windows.Win32.Foundation.ERROR_TOO_MANY_SEM_REQUESTS
-Windows.Win32.Foundation.ERROR_TOO_MANY_SEMAPHORES
-Windows.Win32.Foundation.ERROR_TOO_MANY_SESS
-Windows.Win32.Foundation.ERROR_TOO_MANY_SIDS
-Windows.Win32.Foundation.ERROR_TOO_MANY_TCBS
-Windows.Win32.Foundation.ERROR_TOO_MANY_THREADS
-Windows.Win32.Foundation.ERROR_TRANSLATION_COMPLETE
-Windows.Win32.Foundation.ERROR_TRUST_FAILURE
-Windows.Win32.Foundation.ERROR_TRUSTED_DOMAIN_FAILURE
-Windows.Win32.Foundation.ERROR_TRUSTED_RELATIONSHIP_FAILURE
-Windows.Win32.Foundation.ERROR_UNABLE_TO_LOCK_MEDIA
-Windows.Win32.Foundation.ERROR_UNABLE_TO_MOVE_REPLACEMENT
-Windows.Win32.Foundation.ERROR_UNABLE_TO_MOVE_REPLACEMENT_2
-Windows.Win32.Foundation.ERROR_UNABLE_TO_REMOVE_REPLACED
-Windows.Win32.Foundation.ERROR_UNABLE_TO_UNLOAD_MEDIA
-Windows.Win32.Foundation.ERROR_UNDEFINED_CHARACTER
-Windows.Win32.Foundation.ERROR_UNDEFINED_SCOPE
-Windows.Win32.Foundation.ERROR_UNEXP_NET_ERR
-Windows.Win32.Foundation.ERROR_UNEXPECTED_MM_CREATE_ERR
-Windows.Win32.Foundation.ERROR_UNEXPECTED_MM_EXTEND_ERR
-Windows.Win32.Foundation.ERROR_UNEXPECTED_MM_MAP_ERROR
-Windows.Win32.Foundation.ERROR_UNEXPECTED_NTCACHEMANAGER_ERROR
-Windows.Win32.Foundation.ERROR_UNHANDLED_EXCEPTION
-Windows.Win32.Foundation.ERROR_UNIDENTIFIED_ERROR
-Windows.Win32.Foundation.ERROR_UNKNOWN_COMPONENT
-Windows.Win32.Foundation.ERROR_UNKNOWN_FEATURE
-Windows.Win32.Foundation.ERROR_UNKNOWN_PATCH
-Windows.Win32.Foundation.ERROR_UNKNOWN_PORT
-Windows.Win32.Foundation.ERROR_UNKNOWN_PRINTER_DRIVER
-Windows.Win32.Foundation.ERROR_UNKNOWN_PRINTPROCESSOR
-Windows.Win32.Foundation.ERROR_UNKNOWN_PRODUCT
-Windows.Win32.Foundation.ERROR_UNKNOWN_PROPERTY
-Windows.Win32.Foundation.ERROR_UNKNOWN_REVISION
-Windows.Win32.Foundation.ERROR_UNRECOGNIZED_MEDIA
-Windows.Win32.Foundation.ERROR_UNRECOGNIZED_VOLUME
-Windows.Win32.Foundation.ERROR_UNSATISFIED_DEPENDENCIES
-Windows.Win32.Foundation.ERROR_UNSUPPORTED_COMPRESSION
-Windows.Win32.Foundation.ERROR_UNSUPPORTED_TYPE
-Windows.Win32.Foundation.ERROR_UNTRUSTED_MOUNT_POINT
-Windows.Win32.Foundation.ERROR_UNWIND
-Windows.Win32.Foundation.ERROR_UNWIND_CONSOLIDATE
-Windows.Win32.Foundation.ERROR_USER_APC
-Windows.Win32.Foundation.ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED
-Windows.Win32.Foundation.ERROR_USER_EXISTS
-Windows.Win32.Foundation.ERROR_USER_MAPPED_FILE
-Windows.Win32.Foundation.ERROR_USER_PROFILE_LOAD
-Windows.Win32.Foundation.ERROR_VALIDATE_CONTINUE
-Windows.Win32.Foundation.ERROR_VC_DISCONNECTED
-Windows.Win32.Foundation.ERROR_VDM_DISALLOWED
-Windows.Win32.Foundation.ERROR_VDM_HARD_ERROR
-Windows.Win32.Foundation.ERROR_VERIFIER_STOP
-Windows.Win32.Foundation.ERROR_VERSION_PARSE_ERROR
-Windows.Win32.Foundation.ERROR_VIRUS_DELETED
-Windows.Win32.Foundation.ERROR_VIRUS_INFECTED
-Windows.Win32.Foundation.ERROR_VOLSNAP_HIBERNATE_READY
-Windows.Win32.Foundation.ERROR_VOLSNAP_PREPARE_HIBERNATE
-Windows.Win32.Foundation.ERROR_VOLUME_MOUNTED
-Windows.Win32.Foundation.ERROR_VOLUME_NOT_CLUSTER_ALIGNED
-Windows.Win32.Foundation.ERROR_VOLUME_NOT_SIS_ENABLED
-Windows.Win32.Foundation.ERROR_VOLUME_NOT_SUPPORT_EFS
-Windows.Win32.Foundation.ERROR_VOLUME_NOT_SUPPORTED
-Windows.Win32.Foundation.ERROR_VOLUME_WRITE_ACCESS_DENIED
-Windows.Win32.Foundation.ERROR_WAIT_1
-Windows.Win32.Foundation.ERROR_WAIT_2
-Windows.Win32.Foundation.ERROR_WAIT_3
-Windows.Win32.Foundation.ERROR_WAIT_63
-Windows.Win32.Foundation.ERROR_WAIT_FOR_OPLOCK
-Windows.Win32.Foundation.ERROR_WAIT_NO_CHILDREN
-Windows.Win32.Foundation.ERROR_WAKE_SYSTEM
-Windows.Win32.Foundation.ERROR_WAKE_SYSTEM_DEBUGGER
-Windows.Win32.Foundation.ERROR_WAS_LOCKED
-Windows.Win32.Foundation.ERROR_WAS_UNLOCKED
-Windows.Win32.Foundation.ERROR_WEAK_WHFBKEY_BLOCKED
-Windows.Win32.Foundation.ERROR_WINDOW_NOT_COMBOBOX
-Windows.Win32.Foundation.ERROR_WINDOW_NOT_DIALOG
-Windows.Win32.Foundation.ERROR_WINDOW_OF_OTHER_THREAD
-Windows.Win32.Foundation.ERROR_WIP_ENCRYPTION_FAILED
-Windows.Win32.Foundation.ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT
-Windows.Win32.Foundation.ERROR_WOF_WIM_HEADER_CORRUPT
-Windows.Win32.Foundation.ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT
-Windows.Win32.Foundation.ERROR_WORKING_SET_QUOTA
-Windows.Win32.Foundation.ERROR_WOW_ASSERTION
-Windows.Win32.Foundation.ERROR_WRITE_FAULT
-Windows.Win32.Foundation.ERROR_WRITE_PROTECT
-Windows.Win32.Foundation.ERROR_WRONG_COMPARTMENT
-Windows.Win32.Foundation.ERROR_WRONG_DISK
-Windows.Win32.Foundation.ERROR_WRONG_EFS
-Windows.Win32.Foundation.ERROR_WRONG_PASSWORD
-Windows.Win32.Foundation.ERROR_WRONG_TARGET_NAME
-Windows.Win32.Foundation.ERROR_WX86_ERROR
-Windows.Win32.Foundation.ERROR_WX86_WARNING
-Windows.Win32.Foundation.ERROR_XML_PARSE_ERROR
-Windows.Win32.Foundation.ERROR_XMLDSIG_ERROR
-Windows.Win32.Foundation.EXCEPTION_STACK_OVERFLOW
-Windows.Win32.Foundation.FALSE
-Windows.Win32.Foundation.FARPROC
-Windows.Win32.Foundation.FILETIME
-Windows.Win32.Foundation.FRS_ERR_SYSVOL_POPULATE_TIMEOUT
-Windows.Win32.Foundation.GENERIC_ACCESS_RIGHTS
-Windows.Win32.Foundation.GENERIC_ALL
-Windows.Win32.Foundation.GENERIC_EXECUTE
-Windows.Win32.Foundation.GENERIC_READ
-Windows.Win32.Foundation.GENERIC_WRITE
-Windows.Win32.Foundation.GetLastError
-Windows.Win32.Foundation.HANDLE
-Windows.Win32.Foundation.HANDLE_FLAG_INHERIT
-Windows.Win32.Foundation.HANDLE_FLAG_PROTECT_FROM_CLOSE
-Windows.Win32.Foundation.HANDLE_FLAGS
-Windows.Win32.Foundation.HMODULE
-Windows.Win32.Foundation.LocalFree
-Windows.Win32.Foundation.MAX_PATH
-Windows.Win32.Foundation.NO_ERROR
-Windows.Win32.Foundation.NTSTATUS
-Windows.Win32.Foundation.RtlNtStatusToDosError
-Windows.Win32.Foundation.SetHandleInformation
-Windows.Win32.Foundation.SetLastError
-Windows.Win32.Foundation.STATUS_DELETE_PENDING
-Windows.Win32.Foundation.STATUS_DIRECTORY_NOT_EMPTY
-Windows.Win32.Foundation.STATUS_END_OF_FILE
-Windows.Win32.Foundation.STATUS_FILE_DELETED
-Windows.Win32.Foundation.STATUS_INVALID_HANDLE
-Windows.Win32.Foundation.STATUS_INVALID_PARAMETER
-Windows.Win32.Foundation.STATUS_NOT_IMPLEMENTED
-Windows.Win32.Foundation.STATUS_PENDING
-Windows.Win32.Foundation.STATUS_SHARING_VIOLATION
-Windows.Win32.Foundation.STATUS_SUCCESS
-Windows.Win32.Foundation.TRUE
-Windows.Win32.Foundation.UNICODE_STRING
-Windows.Win32.Foundation.WAIT_ABANDONED
-Windows.Win32.Foundation.WAIT_ABANDONED_0
-Windows.Win32.Foundation.WAIT_FAILED
-Windows.Win32.Foundation.WAIT_IO_COMPLETION
-Windows.Win32.Foundation.WAIT_OBJECT_0
-Windows.Win32.Foundation.WAIT_TIMEOUT
-Windows.Win32.Foundation.WIN32_ERROR
-Windows.Win32.Globalization.COMPARESTRING_RESULT
-Windows.Win32.Globalization.CompareStringOrdinal
-Windows.Win32.Globalization.CP_UTF8
-Windows.Win32.Globalization.CSTR_EQUAL
-Windows.Win32.Globalization.CSTR_GREATER_THAN
-Windows.Win32.Globalization.CSTR_LESS_THAN
-Windows.Win32.Globalization.MB_COMPOSITE
-Windows.Win32.Globalization.MB_ERR_INVALID_CHARS
-Windows.Win32.Globalization.MB_PRECOMPOSED
-Windows.Win32.Globalization.MB_USEGLYPHCHARS
-Windows.Win32.Globalization.MULTI_BYTE_TO_WIDE_CHAR_FLAGS
-Windows.Win32.Globalization.MultiByteToWideChar
-Windows.Win32.Globalization.WC_ERR_INVALID_CHARS
-Windows.Win32.Globalization.WideCharToMultiByte
-Windows.Win32.Networking.WinSock.accept
-Windows.Win32.Networking.WinSock.ADDRESS_FAMILY
-Windows.Win32.Networking.WinSock.ADDRINFOA
-Windows.Win32.Networking.WinSock.AF_INET
-Windows.Win32.Networking.WinSock.AF_INET6
-Windows.Win32.Networking.WinSock.AF_UNIX
-Windows.Win32.Networking.WinSock.AF_UNSPEC
-Windows.Win32.Networking.WinSock.bind
-Windows.Win32.Networking.WinSock.closesocket
-Windows.Win32.Networking.WinSock.connect
-Windows.Win32.Networking.WinSock.FD_SET
-Windows.Win32.Networking.WinSock.FIONBIO
-Windows.Win32.Networking.WinSock.freeaddrinfo
-Windows.Win32.Networking.WinSock.getaddrinfo
-Windows.Win32.Networking.WinSock.getpeername
-Windows.Win32.Networking.WinSock.getsockname
-Windows.Win32.Networking.WinSock.getsockopt
-Windows.Win32.Networking.WinSock.IN6_ADDR
-Windows.Win32.Networking.WinSock.IN_ADDR
-Windows.Win32.Networking.WinSock.INVALID_SOCKET
-Windows.Win32.Networking.WinSock.ioctlsocket
-Windows.Win32.Networking.WinSock.IP_ADD_MEMBERSHIP
-Windows.Win32.Networking.WinSock.IP_DROP_MEMBERSHIP
-Windows.Win32.Networking.WinSock.IP_MREQ
-Windows.Win32.Networking.WinSock.IP_MULTICAST_LOOP
-Windows.Win32.Networking.WinSock.IP_MULTICAST_TTL
-Windows.Win32.Networking.WinSock.IP_TTL
-Windows.Win32.Networking.WinSock.IPPROTO
-Windows.Win32.Networking.WinSock.IPPROTO_AH
-Windows.Win32.Networking.WinSock.IPPROTO_CBT
-Windows.Win32.Networking.WinSock.IPPROTO_DSTOPTS
-Windows.Win32.Networking.WinSock.IPPROTO_EGP
-Windows.Win32.Networking.WinSock.IPPROTO_ESP
-Windows.Win32.Networking.WinSock.IPPROTO_FRAGMENT
-Windows.Win32.Networking.WinSock.IPPROTO_GGP
-Windows.Win32.Networking.WinSock.IPPROTO_HOPOPTS
-Windows.Win32.Networking.WinSock.IPPROTO_ICLFXBM
-Windows.Win32.Networking.WinSock.IPPROTO_ICMP
-Windows.Win32.Networking.WinSock.IPPROTO_ICMPV6
-Windows.Win32.Networking.WinSock.IPPROTO_IDP
-Windows.Win32.Networking.WinSock.IPPROTO_IGMP
-Windows.Win32.Networking.WinSock.IPPROTO_IGP
-Windows.Win32.Networking.WinSock.IPPROTO_IP
-Windows.Win32.Networking.WinSock.IPPROTO_IPV4
-Windows.Win32.Networking.WinSock.IPPROTO_IPV6
-Windows.Win32.Networking.WinSock.IPPROTO_L2TP
-Windows.Win32.Networking.WinSock.IPPROTO_MAX
-Windows.Win32.Networking.WinSock.IPPROTO_ND
-Windows.Win32.Networking.WinSock.IPPROTO_NONE
-Windows.Win32.Networking.WinSock.IPPROTO_PGM
-Windows.Win32.Networking.WinSock.IPPROTO_PIM
-Windows.Win32.Networking.WinSock.IPPROTO_PUP
-Windows.Win32.Networking.WinSock.IPPROTO_RAW
-Windows.Win32.Networking.WinSock.IPPROTO_RDP
-Windows.Win32.Networking.WinSock.IPPROTO_RESERVED_IPSEC
-Windows.Win32.Networking.WinSock.IPPROTO_RESERVED_IPSECOFFLOAD
-Windows.Win32.Networking.WinSock.IPPROTO_RESERVED_MAX
-Windows.Win32.Networking.WinSock.IPPROTO_RESERVED_RAW
-Windows.Win32.Networking.WinSock.IPPROTO_RESERVED_WNV
-Windows.Win32.Networking.WinSock.IPPROTO_RM
-Windows.Win32.Networking.WinSock.IPPROTO_ROUTING
-Windows.Win32.Networking.WinSock.IPPROTO_SCTP
-Windows.Win32.Networking.WinSock.IPPROTO_ST
-Windows.Win32.Networking.WinSock.IPPROTO_TCP
-Windows.Win32.Networking.WinSock.IPPROTO_UDP
-Windows.Win32.Networking.WinSock.IPV6_ADD_MEMBERSHIP
-Windows.Win32.Networking.WinSock.IPV6_DROP_MEMBERSHIP
-Windows.Win32.Networking.WinSock.IPV6_MREQ
-Windows.Win32.Networking.WinSock.IPV6_MULTICAST_LOOP
-Windows.Win32.Networking.WinSock.IPV6_V6ONLY
-Windows.Win32.Networking.WinSock.LINGER
-Windows.Win32.Networking.WinSock.listen
-Windows.Win32.Networking.WinSock.LPWSAOVERLAPPED_COMPLETION_ROUTINE
-Windows.Win32.Networking.WinSock.MSG_DONTROUTE
-Windows.Win32.Networking.WinSock.MSG_OOB
-Windows.Win32.Networking.WinSock.MSG_PEEK
-Windows.Win32.Networking.WinSock.MSG_PUSH_IMMEDIATE
-Windows.Win32.Networking.WinSock.MSG_WAITALL
-Windows.Win32.Networking.WinSock.recv
-Windows.Win32.Networking.WinSock.recvfrom
-Windows.Win32.Networking.WinSock.SD_BOTH
-Windows.Win32.Networking.WinSock.SD_RECEIVE
-Windows.Win32.Networking.WinSock.SD_SEND
-Windows.Win32.Networking.WinSock.select
-Windows.Win32.Networking.WinSock.send
-Windows.Win32.Networking.WinSock.SEND_RECV_FLAGS
-Windows.Win32.Networking.WinSock.sendto
-Windows.Win32.Networking.WinSock.setsockopt
-Windows.Win32.Networking.WinSock.shutdown
-Windows.Win32.Networking.WinSock.SO_BROADCAST
-Windows.Win32.Networking.WinSock.SO_ERROR
-Windows.Win32.Networking.WinSock.SO_LINGER
-Windows.Win32.Networking.WinSock.SO_RCVTIMEO
-Windows.Win32.Networking.WinSock.SO_SNDTIMEO
-Windows.Win32.Networking.WinSock.SOCK_DGRAM
-Windows.Win32.Networking.WinSock.SOCK_RAW
-Windows.Win32.Networking.WinSock.SOCK_RDM
-Windows.Win32.Networking.WinSock.SOCK_SEQPACKET
-Windows.Win32.Networking.WinSock.SOCK_STREAM
-Windows.Win32.Networking.WinSock.SOCKADDR
-Windows.Win32.Networking.WinSock.SOCKADDR_STORAGE
-Windows.Win32.Networking.WinSock.SOCKADDR_UN
-Windows.Win32.Networking.WinSock.SOCKET
-Windows.Win32.Networking.WinSock.SOCKET_ERROR
-Windows.Win32.Networking.WinSock.SOL_SOCKET
-Windows.Win32.Networking.WinSock.TCP_NODELAY
-Windows.Win32.Networking.WinSock.TIMEVAL
-Windows.Win32.Networking.WinSock.WINSOCK_SHUTDOWN_HOW
-Windows.Win32.Networking.WinSock.WINSOCK_SOCKET_TYPE
-Windows.Win32.Networking.WinSock.WSA_E_CANCELLED
-Windows.Win32.Networking.WinSock.WSA_E_NO_MORE
-Windows.Win32.Networking.WinSock.WSA_ERROR
-Windows.Win32.Networking.WinSock.WSA_FLAG_NO_HANDLE_INHERIT
-Windows.Win32.Networking.WinSock.WSA_FLAG_OVERLAPPED
-Windows.Win32.Networking.WinSock.WSA_INVALID_HANDLE
-Windows.Win32.Networking.WinSock.WSA_INVALID_PARAMETER
-Windows.Win32.Networking.WinSock.WSA_IO_INCOMPLETE
-Windows.Win32.Networking.WinSock.WSA_IO_PENDING
-Windows.Win32.Networking.WinSock.WSA_IPSEC_NAME_POLICY_ERROR
-Windows.Win32.Networking.WinSock.WSA_NOT_ENOUGH_MEMORY
-Windows.Win32.Networking.WinSock.WSA_OPERATION_ABORTED
-Windows.Win32.Networking.WinSock.WSA_QOS_ADMISSION_FAILURE
-Windows.Win32.Networking.WinSock.WSA_QOS_BAD_OBJECT
-Windows.Win32.Networking.WinSock.WSA_QOS_BAD_STYLE
-Windows.Win32.Networking.WinSock.WSA_QOS_EFILTERCOUNT
-Windows.Win32.Networking.WinSock.WSA_QOS_EFILTERSTYLE
-Windows.Win32.Networking.WinSock.WSA_QOS_EFILTERTYPE
-Windows.Win32.Networking.WinSock.WSA_QOS_EFLOWCOUNT
-Windows.Win32.Networking.WinSock.WSA_QOS_EFLOWDESC
-Windows.Win32.Networking.WinSock.WSA_QOS_EFLOWSPEC
-Windows.Win32.Networking.WinSock.WSA_QOS_EOBJLENGTH
-Windows.Win32.Networking.WinSock.WSA_QOS_EPOLICYOBJ
-Windows.Win32.Networking.WinSock.WSA_QOS_EPROVSPECBUF
-Windows.Win32.Networking.WinSock.WSA_QOS_EPSFILTERSPEC
-Windows.Win32.Networking.WinSock.WSA_QOS_EPSFLOWSPEC
-Windows.Win32.Networking.WinSock.WSA_QOS_ESDMODEOBJ
-Windows.Win32.Networking.WinSock.WSA_QOS_ESERVICETYPE
-Windows.Win32.Networking.WinSock.WSA_QOS_ESHAPERATEOBJ
-Windows.Win32.Networking.WinSock.WSA_QOS_EUNKOWNPSOBJ
-Windows.Win32.Networking.WinSock.WSA_QOS_GENERIC_ERROR
-Windows.Win32.Networking.WinSock.WSA_QOS_NO_RECEIVERS
-Windows.Win32.Networking.WinSock.WSA_QOS_NO_SENDERS
-Windows.Win32.Networking.WinSock.WSA_QOS_POLICY_FAILURE
-Windows.Win32.Networking.WinSock.WSA_QOS_RECEIVERS
-Windows.Win32.Networking.WinSock.WSA_QOS_REQUEST_CONFIRMED
-Windows.Win32.Networking.WinSock.WSA_QOS_RESERVED_PETYPE
-Windows.Win32.Networking.WinSock.WSA_QOS_SENDERS
-Windows.Win32.Networking.WinSock.WSA_QOS_TRAFFIC_CTRL_ERROR
-Windows.Win32.Networking.WinSock.WSA_SECURE_HOST_NOT_FOUND
-Windows.Win32.Networking.WinSock.WSA_WAIT_EVENT_0
-Windows.Win32.Networking.WinSock.WSA_WAIT_IO_COMPLETION
-Windows.Win32.Networking.WinSock.WSABASEERR
-Windows.Win32.Networking.WinSock.WSABUF
-Windows.Win32.Networking.WinSock.WSACleanup
-Windows.Win32.Networking.WinSock.WSADATA
-Windows.Win32.Networking.WinSock.WSADuplicateSocketW
-Windows.Win32.Networking.WinSock.WSAEACCES
-Windows.Win32.Networking.WinSock.WSAEADDRINUSE
-Windows.Win32.Networking.WinSock.WSAEADDRNOTAVAIL
-Windows.Win32.Networking.WinSock.WSAEAFNOSUPPORT
-Windows.Win32.Networking.WinSock.WSAEALREADY
-Windows.Win32.Networking.WinSock.WSAEBADF
-Windows.Win32.Networking.WinSock.WSAECANCELLED
-Windows.Win32.Networking.WinSock.WSAECONNABORTED
-Windows.Win32.Networking.WinSock.WSAECONNREFUSED
-Windows.Win32.Networking.WinSock.WSAECONNRESET
-Windows.Win32.Networking.WinSock.WSAEDESTADDRREQ
-Windows.Win32.Networking.WinSock.WSAEDISCON
-Windows.Win32.Networking.WinSock.WSAEDQUOT
-Windows.Win32.Networking.WinSock.WSAEFAULT
-Windows.Win32.Networking.WinSock.WSAEHOSTDOWN
-Windows.Win32.Networking.WinSock.WSAEHOSTUNREACH
-Windows.Win32.Networking.WinSock.WSAEINPROGRESS
-Windows.Win32.Networking.WinSock.WSAEINTR
-Windows.Win32.Networking.WinSock.WSAEINVAL
-Windows.Win32.Networking.WinSock.WSAEINVALIDPROCTABLE
-Windows.Win32.Networking.WinSock.WSAEINVALIDPROVIDER
-Windows.Win32.Networking.WinSock.WSAEISCONN
-Windows.Win32.Networking.WinSock.WSAELOOP
-Windows.Win32.Networking.WinSock.WSAEMFILE
-Windows.Win32.Networking.WinSock.WSAEMSGSIZE
-Windows.Win32.Networking.WinSock.WSAENAMETOOLONG
-Windows.Win32.Networking.WinSock.WSAENETDOWN
-Windows.Win32.Networking.WinSock.WSAENETRESET
-Windows.Win32.Networking.WinSock.WSAENETUNREACH
-Windows.Win32.Networking.WinSock.WSAENOBUFS
-Windows.Win32.Networking.WinSock.WSAENOMORE
-Windows.Win32.Networking.WinSock.WSAENOPROTOOPT
-Windows.Win32.Networking.WinSock.WSAENOTCONN
-Windows.Win32.Networking.WinSock.WSAENOTEMPTY
-Windows.Win32.Networking.WinSock.WSAENOTSOCK
-Windows.Win32.Networking.WinSock.WSAEOPNOTSUPP
-Windows.Win32.Networking.WinSock.WSAEPFNOSUPPORT
-Windows.Win32.Networking.WinSock.WSAEPROCLIM
-Windows.Win32.Networking.WinSock.WSAEPROTONOSUPPORT
-Windows.Win32.Networking.WinSock.WSAEPROTOTYPE
-Windows.Win32.Networking.WinSock.WSAEPROVIDERFAILEDINIT
-Windows.Win32.Networking.WinSock.WSAEREFUSED
-Windows.Win32.Networking.WinSock.WSAEREMOTE
-Windows.Win32.Networking.WinSock.WSAESHUTDOWN
-Windows.Win32.Networking.WinSock.WSAESOCKTNOSUPPORT
-Windows.Win32.Networking.WinSock.WSAESTALE
-Windows.Win32.Networking.WinSock.WSAETIMEDOUT
-Windows.Win32.Networking.WinSock.WSAETOOMANYREFS
-Windows.Win32.Networking.WinSock.WSAEUSERS
-Windows.Win32.Networking.WinSock.WSAEWOULDBLOCK
-Windows.Win32.Networking.WinSock.WSAGetLastError
-Windows.Win32.Networking.WinSock.WSAHOST_NOT_FOUND
-Windows.Win32.Networking.WinSock.WSANO_DATA
-Windows.Win32.Networking.WinSock.WSANO_RECOVERY
-Windows.Win32.Networking.WinSock.WSANOTINITIALISED
-Windows.Win32.Networking.WinSock.WSAPROTOCOL_INFOW
-Windows.Win32.Networking.WinSock.WSAPROTOCOLCHAIN
-Windows.Win32.Networking.WinSock.WSARecv
-Windows.Win32.Networking.WinSock.WSASend
-Windows.Win32.Networking.WinSock.WSASERVICE_NOT_FOUND
-Windows.Win32.Networking.WinSock.WSASocketW
-Windows.Win32.Networking.WinSock.WSAStartup
-Windows.Win32.Networking.WinSock.WSASYSCALLFAILURE
-Windows.Win32.Networking.WinSock.WSASYSNOTREADY
-Windows.Win32.Networking.WinSock.WSATRY_AGAIN
-Windows.Win32.Networking.WinSock.WSATYPE_NOT_FOUND
-Windows.Win32.Networking.WinSock.WSAVERNOTSUPPORTED
-Windows.Win32.Security.Authentication.Identity.RtlGenRandom
-Windows.Win32.Security.SECURITY_ATTRIBUTES
-Windows.Win32.Security.TOKEN_ACCESS_MASK
-Windows.Win32.Security.TOKEN_ACCESS_PSEUDO_HANDLE
-Windows.Win32.Security.TOKEN_ACCESS_PSEUDO_HANDLE_WIN8
-Windows.Win32.Security.TOKEN_ACCESS_SYSTEM_SECURITY
-Windows.Win32.Security.TOKEN_ADJUST_DEFAULT
-Windows.Win32.Security.TOKEN_ADJUST_GROUPS
-Windows.Win32.Security.TOKEN_ADJUST_PRIVILEGES
-Windows.Win32.Security.TOKEN_ADJUST_SESSIONID
-Windows.Win32.Security.TOKEN_ALL_ACCESS
-Windows.Win32.Security.TOKEN_ASSIGN_PRIMARY
-Windows.Win32.Security.TOKEN_DELETE
-Windows.Win32.Security.TOKEN_DUPLICATE
-Windows.Win32.Security.TOKEN_EXECUTE
-Windows.Win32.Security.TOKEN_IMPERSONATE
-Windows.Win32.Security.TOKEN_QUERY
-Windows.Win32.Security.TOKEN_QUERY_SOURCE
-Windows.Win32.Security.TOKEN_READ
-Windows.Win32.Security.TOKEN_READ_CONTROL
-Windows.Win32.Security.TOKEN_TRUST_CONSTRAINT_MASK
-Windows.Win32.Security.TOKEN_WRITE
-Windows.Win32.Security.TOKEN_WRITE_DAC
-Windows.Win32.Security.TOKEN_WRITE_OWNER
-Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION
-Windows.Win32.Storage.FileSystem.CALLBACK_CHUNK_FINISHED
-Windows.Win32.Storage.FileSystem.CALLBACK_STREAM_SWITCH
-Windows.Win32.Storage.FileSystem.CopyFileExW
-Windows.Win32.Storage.FileSystem.CREATE_ALWAYS
-Windows.Win32.Storage.FileSystem.CREATE_NEW
-Windows.Win32.Storage.FileSystem.CreateDirectoryW
-Windows.Win32.Storage.FileSystem.CreateFileW
-Windows.Win32.Storage.FileSystem.CreateHardLinkW
-Windows.Win32.Storage.FileSystem.CreateSymbolicLinkW
-Windows.Win32.Storage.FileSystem.DELETE
-Windows.Win32.Storage.FileSystem.DeleteFileW
-Windows.Win32.Storage.FileSystem.FILE_ACCESS_RIGHTS
-Windows.Win32.Storage.FileSystem.FILE_ADD_FILE
-Windows.Win32.Storage.FileSystem.FILE_ADD_SUBDIRECTORY
-Windows.Win32.Storage.FileSystem.FILE_ALL_ACCESS
-Windows.Win32.Storage.FileSystem.FILE_ALLOCATION_INFO
-Windows.Win32.Storage.FileSystem.FILE_APPEND_DATA
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_ARCHIVE
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_COMPRESSED
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_DEVICE
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_DIRECTORY
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_EA
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_ENCRYPTED
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_HIDDEN
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_INTEGRITY_STREAM
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_NO_SCRUB_DATA
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_NORMAL
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_OFFLINE
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_PINNED
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_READONLY
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_RECALL_ON_OPEN
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_REPARSE_POINT
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_SPARSE_FILE
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_SYSTEM
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_TAG_INFO
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_TEMPORARY
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_UNPINNED
-Windows.Win32.Storage.FileSystem.FILE_ATTRIBUTE_VIRTUAL
-Windows.Win32.Storage.FileSystem.FILE_BASIC_INFO
-Windows.Win32.Storage.FileSystem.FILE_BEGIN
-Windows.Win32.Storage.FileSystem.FILE_CREATE_PIPE_INSTANCE
-Windows.Win32.Storage.FileSystem.FILE_CREATION_DISPOSITION
-Windows.Win32.Storage.FileSystem.FILE_CURRENT
-Windows.Win32.Storage.FileSystem.FILE_DELETE_CHILD
-Windows.Win32.Storage.FileSystem.FILE_DISPOSITION_FLAG_DELETE
-Windows.Win32.Storage.FileSystem.FILE_DISPOSITION_FLAG_DO_NOT_DELETE
-Windows.Win32.Storage.FileSystem.FILE_DISPOSITION_FLAG_FORCE_IMAGE_SECTION_CHECK
-Windows.Win32.Storage.FileSystem.FILE_DISPOSITION_FLAG_IGNORE_READONLY_ATTRIBUTE
-Windows.Win32.Storage.FileSystem.FILE_DISPOSITION_FLAG_ON_CLOSE
-Windows.Win32.Storage.FileSystem.FILE_DISPOSITION_FLAG_POSIX_SEMANTICS
-Windows.Win32.Storage.FileSystem.FILE_DISPOSITION_INFO
-Windows.Win32.Storage.FileSystem.FILE_DISPOSITION_INFO_EX
-Windows.Win32.Storage.FileSystem.FILE_DISPOSITION_INFO_EX_FLAGS
-Windows.Win32.Storage.FileSystem.FILE_END
-Windows.Win32.Storage.FileSystem.FILE_END_OF_FILE_INFO
-Windows.Win32.Storage.FileSystem.FILE_EXECUTE
-Windows.Win32.Storage.FileSystem.FILE_FLAG_BACKUP_SEMANTICS
-Windows.Win32.Storage.FileSystem.FILE_FLAG_DELETE_ON_CLOSE
-Windows.Win32.Storage.FileSystem.FILE_FLAG_FIRST_PIPE_INSTANCE
-Windows.Win32.Storage.FileSystem.FILE_FLAG_NO_BUFFERING
-Windows.Win32.Storage.FileSystem.FILE_FLAG_OPEN_NO_RECALL
-Windows.Win32.Storage.FileSystem.FILE_FLAG_OPEN_REPARSE_POINT
-Windows.Win32.Storage.FileSystem.FILE_FLAG_OVERLAPPED
-Windows.Win32.Storage.FileSystem.FILE_FLAG_POSIX_SEMANTICS
-Windows.Win32.Storage.FileSystem.FILE_FLAG_RANDOM_ACCESS
-Windows.Win32.Storage.FileSystem.FILE_FLAG_SEQUENTIAL_SCAN
-Windows.Win32.Storage.FileSystem.FILE_FLAG_SESSION_AWARE
-Windows.Win32.Storage.FileSystem.FILE_FLAG_WRITE_THROUGH
-Windows.Win32.Storage.FileSystem.FILE_FLAGS_AND_ATTRIBUTES
-Windows.Win32.Storage.FileSystem.FILE_GENERIC_EXECUTE
-Windows.Win32.Storage.FileSystem.FILE_GENERIC_READ
-Windows.Win32.Storage.FileSystem.FILE_GENERIC_WRITE
-Windows.Win32.Storage.FileSystem.FILE_ID_BOTH_DIR_INFO
-Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS
-Windows.Win32.Storage.FileSystem.FILE_IO_PRIORITY_HINT_INFO
-Windows.Win32.Storage.FileSystem.FILE_LIST_DIRECTORY
-Windows.Win32.Storage.FileSystem.FILE_NAME_NORMALIZED
-Windows.Win32.Storage.FileSystem.FILE_NAME_OPENED
-Windows.Win32.Storage.FileSystem.FILE_READ_ATTRIBUTES
-Windows.Win32.Storage.FileSystem.FILE_READ_DATA
-Windows.Win32.Storage.FileSystem.FILE_READ_EA
-Windows.Win32.Storage.FileSystem.FILE_RENAME_INFO
-Windows.Win32.Storage.FileSystem.FILE_SHARE_DELETE
-Windows.Win32.Storage.FileSystem.FILE_SHARE_MODE
-Windows.Win32.Storage.FileSystem.FILE_SHARE_NONE
-Windows.Win32.Storage.FileSystem.FILE_SHARE_READ
-Windows.Win32.Storage.FileSystem.FILE_SHARE_WRITE
-Windows.Win32.Storage.FileSystem.FILE_STANDARD_INFO
-Windows.Win32.Storage.FileSystem.FILE_TRAVERSE
-Windows.Win32.Storage.FileSystem.FILE_TYPE
-Windows.Win32.Storage.FileSystem.FILE_TYPE_CHAR
-Windows.Win32.Storage.FileSystem.FILE_TYPE_DISK
-Windows.Win32.Storage.FileSystem.FILE_TYPE_PIPE
-Windows.Win32.Storage.FileSystem.FILE_TYPE_REMOTE
-Windows.Win32.Storage.FileSystem.FILE_TYPE_UNKNOWN
-Windows.Win32.Storage.FileSystem.FILE_WRITE_ATTRIBUTES
-Windows.Win32.Storage.FileSystem.FILE_WRITE_DATA
-Windows.Win32.Storage.FileSystem.FILE_WRITE_EA
-Windows.Win32.Storage.FileSystem.FileAlignmentInfo
-Windows.Win32.Storage.FileSystem.FileAllocationInfo
-Windows.Win32.Storage.FileSystem.FileAttributeTagInfo
-Windows.Win32.Storage.FileSystem.FileBasicInfo
-Windows.Win32.Storage.FileSystem.FileCaseSensitiveInfo
-Windows.Win32.Storage.FileSystem.FileCompressionInfo
-Windows.Win32.Storage.FileSystem.FileDispositionInfo
-Windows.Win32.Storage.FileSystem.FileDispositionInfoEx
-Windows.Win32.Storage.FileSystem.FileEndOfFileInfo
-Windows.Win32.Storage.FileSystem.FileFullDirectoryInfo
-Windows.Win32.Storage.FileSystem.FileFullDirectoryRestartInfo
-Windows.Win32.Storage.FileSystem.FileIdBothDirectoryInfo
-Windows.Win32.Storage.FileSystem.FileIdBothDirectoryRestartInfo
-Windows.Win32.Storage.FileSystem.FileIdExtdDirectoryInfo
-Windows.Win32.Storage.FileSystem.FileIdExtdDirectoryRestartInfo
-Windows.Win32.Storage.FileSystem.FileIdInfo
-Windows.Win32.Storage.FileSystem.FileIoPriorityHintInfo
-Windows.Win32.Storage.FileSystem.FileNameInfo
-Windows.Win32.Storage.FileSystem.FileNormalizedNameInfo
-Windows.Win32.Storage.FileSystem.FileRemoteProtocolInfo
-Windows.Win32.Storage.FileSystem.FileRenameInfo
-Windows.Win32.Storage.FileSystem.FileRenameInfoEx
-Windows.Win32.Storage.FileSystem.FileStandardInfo
-Windows.Win32.Storage.FileSystem.FileStorageInfo
-Windows.Win32.Storage.FileSystem.FileStreamInfo
-Windows.Win32.Storage.FileSystem.FindClose
-Windows.Win32.Storage.FileSystem.FindExInfoBasic
-Windows.Win32.Storage.FileSystem.FindExSearchNameMatch
-Windows.Win32.Storage.FileSystem.FindFirstFileExW
-Windows.Win32.Storage.FileSystem.FindNextFileW
-Windows.Win32.Storage.FileSystem.FlushFileBuffers
-Windows.Win32.Storage.FileSystem.GetFileAttributesW
-Windows.Win32.Storage.FileSystem.GetFileInformationByHandle
-Windows.Win32.Storage.FileSystem.GetFileInformationByHandleEx
-Windows.Win32.Storage.FileSystem.GetFileType
-Windows.Win32.Storage.FileSystem.GETFINALPATHNAMEBYHANDLE_FLAGS
-Windows.Win32.Storage.FileSystem.GetFinalPathNameByHandleW
-Windows.Win32.Storage.FileSystem.GetFullPathNameW
-Windows.Win32.Storage.FileSystem.GetTempPathW
-Windows.Win32.Storage.FileSystem.INVALID_FILE_ATTRIBUTES
-Windows.Win32.Storage.FileSystem.LOCKFILE_EXCLUSIVE_LOCK
-Windows.Win32.Storage.FileSystem.LOCKFILE_FAIL_IMMEDIATELY
-Windows.Win32.Storage.FileSystem.LockFileEx
-Windows.Win32.Storage.FileSystem.LPPROGRESS_ROUTINE
-Windows.Win32.Storage.FileSystem.LPPROGRESS_ROUTINE_CALLBACK_REASON
-Windows.Win32.Storage.FileSystem.MAXIMUM_REPARSE_DATA_BUFFER_SIZE
-Windows.Win32.Storage.FileSystem.MaximumFileInfoByHandleClass
-Windows.Win32.Storage.FileSystem.MOVE_FILE_FLAGS
-Windows.Win32.Storage.FileSystem.MOVEFILE_COPY_ALLOWED
-Windows.Win32.Storage.FileSystem.MOVEFILE_CREATE_HARDLINK
-Windows.Win32.Storage.FileSystem.MOVEFILE_DELAY_UNTIL_REBOOT
-Windows.Win32.Storage.FileSystem.MOVEFILE_FAIL_IF_NOT_TRACKABLE
-Windows.Win32.Storage.FileSystem.MOVEFILE_REPLACE_EXISTING
-Windows.Win32.Storage.FileSystem.MOVEFILE_WRITE_THROUGH
-Windows.Win32.Storage.FileSystem.MoveFileExW
-Windows.Win32.Storage.FileSystem.OPEN_ALWAYS
-Windows.Win32.Storage.FileSystem.OPEN_EXISTING
-Windows.Win32.Storage.FileSystem.PIPE_ACCESS_DUPLEX
-Windows.Win32.Storage.FileSystem.PIPE_ACCESS_INBOUND
-Windows.Win32.Storage.FileSystem.PIPE_ACCESS_OUTBOUND
-Windows.Win32.Storage.FileSystem.READ_CONTROL
-Windows.Win32.Storage.FileSystem.ReadFile
-Windows.Win32.Storage.FileSystem.ReadFileEx
-Windows.Win32.Storage.FileSystem.RemoveDirectoryW
-Windows.Win32.Storage.FileSystem.SECURITY_ANONYMOUS
-Windows.Win32.Storage.FileSystem.SECURITY_CONTEXT_TRACKING
-Windows.Win32.Storage.FileSystem.SECURITY_DELEGATION
-Windows.Win32.Storage.FileSystem.SECURITY_EFFECTIVE_ONLY
-Windows.Win32.Storage.FileSystem.SECURITY_IDENTIFICATION
-Windows.Win32.Storage.FileSystem.SECURITY_IMPERSONATION
-Windows.Win32.Storage.FileSystem.SECURITY_SQOS_PRESENT
-Windows.Win32.Storage.FileSystem.SECURITY_VALID_SQOS_FLAGS
-Windows.Win32.Storage.FileSystem.SET_FILE_POINTER_MOVE_METHOD
-Windows.Win32.Storage.FileSystem.SetFileAttributesW
-Windows.Win32.Storage.FileSystem.SetFileInformationByHandle
-Windows.Win32.Storage.FileSystem.SetFilePointerEx
-Windows.Win32.Storage.FileSystem.SetFileTime
-Windows.Win32.Storage.FileSystem.SPECIFIC_RIGHTS_ALL
-Windows.Win32.Storage.FileSystem.STANDARD_RIGHTS_ALL
-Windows.Win32.Storage.FileSystem.STANDARD_RIGHTS_EXECUTE
-Windows.Win32.Storage.FileSystem.STANDARD_RIGHTS_READ
-Windows.Win32.Storage.FileSystem.STANDARD_RIGHTS_REQUIRED
-Windows.Win32.Storage.FileSystem.STANDARD_RIGHTS_WRITE
-Windows.Win32.Storage.FileSystem.SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
-Windows.Win32.Storage.FileSystem.SYMBOLIC_LINK_FLAG_DIRECTORY
-Windows.Win32.Storage.FileSystem.SYMBOLIC_LINK_FLAGS
-Windows.Win32.Storage.FileSystem.SYNCHRONIZE
-Windows.Win32.Storage.FileSystem.TRUNCATE_EXISTING
-Windows.Win32.Storage.FileSystem.UnlockFile
-Windows.Win32.Storage.FileSystem.VOLUME_NAME_DOS
-Windows.Win32.Storage.FileSystem.VOLUME_NAME_GUID
-Windows.Win32.Storage.FileSystem.VOLUME_NAME_NONE
-Windows.Win32.Storage.FileSystem.WIN32_FIND_DATAW
-Windows.Win32.Storage.FileSystem.WRITE_DAC
-Windows.Win32.Storage.FileSystem.WRITE_OWNER
-Windows.Win32.Storage.FileSystem.WriteFileEx
-Windows.Win32.System.Console.CONSOLE_MODE
-Windows.Win32.System.Console.CONSOLE_READCONSOLE_CONTROL
-Windows.Win32.System.Console.DISABLE_NEWLINE_AUTO_RETURN
-Windows.Win32.System.Console.ENABLE_AUTO_POSITION
-Windows.Win32.System.Console.ENABLE_ECHO_INPUT
-Windows.Win32.System.Console.ENABLE_EXTENDED_FLAGS
-Windows.Win32.System.Console.ENABLE_INSERT_MODE
-Windows.Win32.System.Console.ENABLE_LINE_INPUT
-Windows.Win32.System.Console.ENABLE_LVB_GRID_WORLDWIDE
-Windows.Win32.System.Console.ENABLE_MOUSE_INPUT
-Windows.Win32.System.Console.ENABLE_PROCESSED_INPUT
-Windows.Win32.System.Console.ENABLE_PROCESSED_OUTPUT
-Windows.Win32.System.Console.ENABLE_QUICK_EDIT_MODE
-Windows.Win32.System.Console.ENABLE_VIRTUAL_TERMINAL_INPUT
-Windows.Win32.System.Console.ENABLE_VIRTUAL_TERMINAL_PROCESSING
-Windows.Win32.System.Console.ENABLE_WINDOW_INPUT
-Windows.Win32.System.Console.ENABLE_WRAP_AT_EOL_OUTPUT
-Windows.Win32.System.Console.GetConsoleMode
-Windows.Win32.System.Console.GetConsoleOutputCP
-Windows.Win32.System.Console.GetStdHandle
-Windows.Win32.System.Console.ReadConsoleW
-Windows.Win32.System.Console.STD_ERROR_HANDLE
-Windows.Win32.System.Console.STD_HANDLE
-Windows.Win32.System.Console.STD_INPUT_HANDLE
-Windows.Win32.System.Console.STD_OUTPUT_HANDLE
-Windows.Win32.System.Console.WriteConsoleW
-Windows.Win32.System.Diagnostics.Debug.AddVectoredExceptionHandler
-Windows.Win32.System.Diagnostics.Debug.ARM64_NT_NEON128
-Windows.Win32.System.Diagnostics.Debug.CONTEXT
-Windows.Win32.System.Diagnostics.Debug.EXCEPTION_RECORD
-Windows.Win32.System.Diagnostics.Debug.FACILITY_CODE
-Windows.Win32.System.Diagnostics.Debug.FACILITY_NT_BIT
-Windows.Win32.System.Diagnostics.Debug.FORMAT_MESSAGE_ALLOCATE_BUFFER
-Windows.Win32.System.Diagnostics.Debug.FORMAT_MESSAGE_ARGUMENT_ARRAY
-Windows.Win32.System.Diagnostics.Debug.FORMAT_MESSAGE_FROM_HMODULE
-Windows.Win32.System.Diagnostics.Debug.FORMAT_MESSAGE_FROM_STRING
-Windows.Win32.System.Diagnostics.Debug.FORMAT_MESSAGE_FROM_SYSTEM
-Windows.Win32.System.Diagnostics.Debug.FORMAT_MESSAGE_IGNORE_INSERTS
-Windows.Win32.System.Diagnostics.Debug.FORMAT_MESSAGE_OPTIONS
-Windows.Win32.System.Diagnostics.Debug.FormatMessageW
-Windows.Win32.System.Diagnostics.Debug.M128A
Windows.Win32.System.Diagnostics.Debug.XSAVE_FORMAT
-Windows.Win32.System.Environment.FreeEnvironmentStringsW
-Windows.Win32.System.Environment.GetCommandLineW
-Windows.Win32.System.Environment.GetCurrentDirectoryW
-Windows.Win32.System.Environment.GetEnvironmentStringsW
-Windows.Win32.System.Environment.GetEnvironmentVariableW
-Windows.Win32.System.Environment.SetCurrentDirectoryW
-Windows.Win32.System.Environment.SetEnvironmentVariableW
-Windows.Win32.System.IO.CancelIo
-Windows.Win32.System.IO.DeviceIoControl
-Windows.Win32.System.IO.GetOverlappedResult
-Windows.Win32.System.IO.LPOVERLAPPED_COMPLETION_ROUTINE
-Windows.Win32.System.IO.OVERLAPPED
-Windows.Win32.System.Ioctl.FSCTL_GET_REPARSE_POINT
-Windows.Win32.System.Ioctl.FSCTL_SET_REPARSE_POINT
-Windows.Win32.System.Kernel.EXCEPTION_DISPOSITION
-Windows.Win32.System.Kernel.ExceptionCollidedUnwind
-Windows.Win32.System.Kernel.ExceptionContinueExecution
-Windows.Win32.System.Kernel.ExceptionContinueSearch
-Windows.Win32.System.Kernel.ExceptionNestedException
Windows.Win32.System.Kernel.FLOATING_SAVE_AREA
-Windows.Win32.System.Kernel.OBJ_DONT_REPARSE
-Windows.Win32.System.LibraryLoader.GetModuleFileNameW
-Windows.Win32.System.LibraryLoader.GetModuleHandleA
-Windows.Win32.System.LibraryLoader.GetModuleHandleW
-Windows.Win32.System.LibraryLoader.GetProcAddress
-Windows.Win32.System.Performance.QueryPerformanceCounter
-Windows.Win32.System.Performance.QueryPerformanceFrequency
-Windows.Win32.System.Pipes.CreateNamedPipeW
-Windows.Win32.System.Pipes.CreatePipe
-Windows.Win32.System.Pipes.NAMED_PIPE_MODE
-Windows.Win32.System.Pipes.PIPE_ACCEPT_REMOTE_CLIENTS
-Windows.Win32.System.Pipes.PIPE_CLIENT_END
-Windows.Win32.System.Pipes.PIPE_NOWAIT
-Windows.Win32.System.Pipes.PIPE_READMODE_BYTE
-Windows.Win32.System.Pipes.PIPE_READMODE_MESSAGE
-Windows.Win32.System.Pipes.PIPE_REJECT_REMOTE_CLIENTS
-Windows.Win32.System.Pipes.PIPE_SERVER_END
-Windows.Win32.System.Pipes.PIPE_TYPE_BYTE
-Windows.Win32.System.Pipes.PIPE_TYPE_MESSAGE
-Windows.Win32.System.Pipes.PIPE_WAIT
-Windows.Win32.System.SystemInformation.GetSystemDirectoryW
-Windows.Win32.System.SystemInformation.GetSystemInfo
-Windows.Win32.System.SystemInformation.GetSystemTimeAsFileTime
-Windows.Win32.System.SystemInformation.GetSystemTimePreciseAsFileTime
-Windows.Win32.System.SystemInformation.GetWindowsDirectoryW
-Windows.Win32.System.SystemInformation.PROCESSOR_ARCHITECTURE
-Windows.Win32.System.SystemInformation.SYSTEM_INFO
-Windows.Win32.System.SystemServices.DLL_PROCESS_DETACH
-Windows.Win32.System.SystemServices.DLL_THREAD_DETACH
-Windows.Win32.System.SystemServices.EXCEPTION_MAXIMUM_PARAMETERS
-Windows.Win32.System.SystemServices.FAST_FAIL_FATAL_APP_EXIT
-Windows.Win32.System.SystemServices.IO_REPARSE_TAG_MOUNT_POINT
-Windows.Win32.System.SystemServices.IO_REPARSE_TAG_SYMLINK
-Windows.Win32.System.Threading.ABOVE_NORMAL_PRIORITY_CLASS
-Windows.Win32.System.Threading.AcquireSRWLockExclusive
-Windows.Win32.System.Threading.AcquireSRWLockShared
-Windows.Win32.System.Threading.ALL_PROCESSOR_GROUPS
-Windows.Win32.System.Threading.BELOW_NORMAL_PRIORITY_CLASS
-Windows.Win32.System.Threading.CREATE_BREAKAWAY_FROM_JOB
-Windows.Win32.System.Threading.CREATE_DEFAULT_ERROR_MODE
-Windows.Win32.System.Threading.CREATE_FORCEDOS
-Windows.Win32.System.Threading.CREATE_IGNORE_SYSTEM_DEFAULT
-Windows.Win32.System.Threading.CREATE_NEW_CONSOLE
-Windows.Win32.System.Threading.CREATE_NEW_PROCESS_GROUP
-Windows.Win32.System.Threading.CREATE_NO_WINDOW
-Windows.Win32.System.Threading.CREATE_PRESERVE_CODE_AUTHZ_LEVEL
-Windows.Win32.System.Threading.CREATE_PROTECTED_PROCESS
-Windows.Win32.System.Threading.CREATE_SECURE_PROCESS
-Windows.Win32.System.Threading.CREATE_SEPARATE_WOW_VDM
-Windows.Win32.System.Threading.CREATE_SHARED_WOW_VDM
-Windows.Win32.System.Threading.CREATE_SUSPENDED
-Windows.Win32.System.Threading.CREATE_UNICODE_ENVIRONMENT
-Windows.Win32.System.Threading.CREATE_WAITABLE_TIMER_HIGH_RESOLUTION
-Windows.Win32.System.Threading.CREATE_WAITABLE_TIMER_MANUAL_RESET
-Windows.Win32.System.Threading.CreateEventW
-Windows.Win32.System.Threading.CreateProcessW
-Windows.Win32.System.Threading.CreateThread
-Windows.Win32.System.Threading.CreateWaitableTimerExW
-Windows.Win32.System.Threading.DEBUG_ONLY_THIS_PROCESS
-Windows.Win32.System.Threading.DEBUG_PROCESS
-Windows.Win32.System.Threading.DeleteProcThreadAttributeList
-Windows.Win32.System.Threading.DETACHED_PROCESS
-Windows.Win32.System.Threading.ExitProcess
-Windows.Win32.System.Threading.EXTENDED_STARTUPINFO_PRESENT
-Windows.Win32.System.Threading.GetActiveProcessorCount
-Windows.Win32.System.Threading.GetCurrentProcess
-Windows.Win32.System.Threading.GetCurrentProcessId
-Windows.Win32.System.Threading.GetCurrentThread
-Windows.Win32.System.Threading.GetExitCodeProcess
-Windows.Win32.System.Threading.GetProcessId
-Windows.Win32.System.Threading.HIGH_PRIORITY_CLASS
-Windows.Win32.System.Threading.IDLE_PRIORITY_CLASS
-Windows.Win32.System.Threading.INFINITE
-Windows.Win32.System.Threading.INHERIT_CALLER_PRIORITY
-Windows.Win32.System.Threading.INHERIT_PARENT_AFFINITY
-Windows.Win32.System.Threading.INIT_ONCE_INIT_FAILED
-Windows.Win32.System.Threading.InitializeProcThreadAttributeList
-Windows.Win32.System.Threading.InitOnceBeginInitialize
-Windows.Win32.System.Threading.InitOnceComplete
-Windows.Win32.System.Threading.LPPROC_THREAD_ATTRIBUTE_LIST
-Windows.Win32.System.Threading.LPTHREAD_START_ROUTINE
-Windows.Win32.System.Threading.NORMAL_PRIORITY_CLASS
-Windows.Win32.System.Threading.OpenProcessToken
-Windows.Win32.System.Threading.PROCESS_CREATION_FLAGS
-Windows.Win32.System.Threading.PROCESS_INFORMATION
-Windows.Win32.System.Threading.PROCESS_MODE_BACKGROUND_BEGIN
-Windows.Win32.System.Threading.PROCESS_MODE_BACKGROUND_END
-Windows.Win32.System.Threading.PROFILE_KERNEL
-Windows.Win32.System.Threading.PROFILE_SERVER
-Windows.Win32.System.Threading.PROFILE_USER
-Windows.Win32.System.Threading.REALTIME_PRIORITY_CLASS
-Windows.Win32.System.Threading.ReleaseSRWLockExclusive
-Windows.Win32.System.Threading.ReleaseSRWLockShared
-Windows.Win32.System.Threading.SetThreadStackGuarantee
-Windows.Win32.System.Threading.SetWaitableTimer
-Windows.Win32.System.Threading.Sleep
-Windows.Win32.System.Threading.SleepConditionVariableSRW
-Windows.Win32.System.Threading.SleepEx
-Windows.Win32.System.Threading.STACK_SIZE_PARAM_IS_A_RESERVATION
-Windows.Win32.System.Threading.STARTF_FORCEOFFFEEDBACK
-Windows.Win32.System.Threading.STARTF_FORCEONFEEDBACK
-Windows.Win32.System.Threading.STARTF_PREVENTPINNING
-Windows.Win32.System.Threading.STARTF_RUNFULLSCREEN
-Windows.Win32.System.Threading.STARTF_TITLEISAPPID
-Windows.Win32.System.Threading.STARTF_TITLEISLINKNAME
-Windows.Win32.System.Threading.STARTF_UNTRUSTEDSOURCE
-Windows.Win32.System.Threading.STARTF_USECOUNTCHARS
-Windows.Win32.System.Threading.STARTF_USEFILLATTRIBUTE
-Windows.Win32.System.Threading.STARTF_USEHOTKEY
-Windows.Win32.System.Threading.STARTF_USEPOSITION
-Windows.Win32.System.Threading.STARTF_USESHOWWINDOW
-Windows.Win32.System.Threading.STARTF_USESIZE
-Windows.Win32.System.Threading.STARTF_USESTDHANDLES
-Windows.Win32.System.Threading.STARTUPINFOEXW
-Windows.Win32.System.Threading.STARTUPINFOW
-Windows.Win32.System.Threading.STARTUPINFOW_FLAGS
-Windows.Win32.System.Threading.SwitchToThread
-Windows.Win32.System.Threading.TerminateProcess
-Windows.Win32.System.Threading.THREAD_CREATE_RUN_IMMEDIATELY
-Windows.Win32.System.Threading.THREAD_CREATE_SUSPENDED
-Windows.Win32.System.Threading.THREAD_CREATION_FLAGS
-Windows.Win32.System.Threading.TIMER_ALL_ACCESS
-Windows.Win32.System.Threading.TIMER_MODIFY_STATE
-Windows.Win32.System.Threading.TLS_OUT_OF_INDEXES
-Windows.Win32.System.Threading.TlsAlloc
-Windows.Win32.System.Threading.TlsFree
-Windows.Win32.System.Threading.TlsGetValue
-Windows.Win32.System.Threading.TlsSetValue
-Windows.Win32.System.Threading.TryAcquireSRWLockExclusive
-Windows.Win32.System.Threading.TryAcquireSRWLockShared
-Windows.Win32.System.Threading.UpdateProcThreadAttribute
-Windows.Win32.System.Threading.WaitForMultipleObjects
-Windows.Win32.System.Threading.WaitForSingleObject
-Windows.Win32.System.Threading.WakeAllConditionVariable
-Windows.Win32.System.Threading.WakeConditionVariable
-Windows.Win32.System.WindowsProgramming.FILE_RENAME_FLAG_POSIX_SEMANTICS
-Windows.Win32.System.WindowsProgramming.FILE_RENAME_FLAG_REPLACE_IF_EXISTS
-Windows.Win32.System.WindowsProgramming.PROGRESS_CONTINUE
-Windows.Win32.UI.Shell.GetUserProfileDirectoryW
+WINSOCK_SHUTDOWN_HOW
+WINSOCK_SOCKET_TYPE
+WRITE_DAC
+WRITE_OWNER
+WriteConsoleW
+WriteFileEx
+WSA_E_CANCELLED
+WSA_E_NO_MORE
+WSA_ERROR
+WSA_FLAG_NO_HANDLE_INHERIT
+WSA_FLAG_OVERLAPPED
+WSA_INVALID_HANDLE
+WSA_INVALID_PARAMETER
+WSA_IO_INCOMPLETE
+WSA_IO_PENDING
+WSA_IPSEC_NAME_POLICY_ERROR
+WSA_NOT_ENOUGH_MEMORY
+WSA_OPERATION_ABORTED
+WSA_QOS_ADMISSION_FAILURE
+WSA_QOS_BAD_OBJECT
+WSA_QOS_BAD_STYLE
+WSA_QOS_EFILTERCOUNT
+WSA_QOS_EFILTERSTYLE
+WSA_QOS_EFILTERTYPE
+WSA_QOS_EFLOWCOUNT
+WSA_QOS_EFLOWDESC
+WSA_QOS_EFLOWSPEC
+WSA_QOS_EOBJLENGTH
+WSA_QOS_EPOLICYOBJ
+WSA_QOS_EPROVSPECBUF
+WSA_QOS_EPSFILTERSPEC
+WSA_QOS_EPSFLOWSPEC
+WSA_QOS_ESDMODEOBJ
+WSA_QOS_ESERVICETYPE
+WSA_QOS_ESHAPERATEOBJ
+WSA_QOS_EUNKOWNPSOBJ
+WSA_QOS_GENERIC_ERROR
+WSA_QOS_NO_RECEIVERS
+WSA_QOS_NO_SENDERS
+WSA_QOS_POLICY_FAILURE
+WSA_QOS_RECEIVERS
+WSA_QOS_REQUEST_CONFIRMED
+WSA_QOS_RESERVED_PETYPE
+WSA_QOS_SENDERS
+WSA_QOS_TRAFFIC_CTRL_ERROR
+WSA_SECURE_HOST_NOT_FOUND
+WSA_WAIT_EVENT_0
+WSA_WAIT_IO_COMPLETION
+WSABASEERR
+WSABUF
+WSACleanup
+WSADATA
+WSADuplicateSocketW
+WSAEACCES
+WSAEADDRINUSE
+WSAEADDRNOTAVAIL
+WSAEAFNOSUPPORT
+WSAEALREADY
+WSAEBADF
+WSAECANCELLED
+WSAECONNABORTED
+WSAECONNREFUSED
+WSAECONNRESET
+WSAEDESTADDRREQ
+WSAEDISCON
+WSAEDQUOT
+WSAEFAULT
+WSAEHOSTDOWN
+WSAEHOSTUNREACH
+WSAEINPROGRESS
+WSAEINTR
+WSAEINVAL
+WSAEINVALIDPROCTABLE
+WSAEINVALIDPROVIDER
+WSAEISCONN
+WSAELOOP
+WSAEMFILE
+WSAEMSGSIZE
+WSAENAMETOOLONG
+WSAENETDOWN
+WSAENETRESET
+WSAENETUNREACH
+WSAENOBUFS
+WSAENOMORE
+WSAENOPROTOOPT
+WSAENOTCONN
+WSAENOTEMPTY
+WSAENOTSOCK
+WSAEOPNOTSUPP
+WSAEPFNOSUPPORT
+WSAEPROCLIM
+WSAEPROTONOSUPPORT
+WSAEPROTOTYPE
+WSAEPROVIDERFAILEDINIT
+WSAEREFUSED
+WSAEREMOTE
+WSAESHUTDOWN
+WSAESOCKTNOSUPPORT
+WSAESTALE
+WSAETIMEDOUT
+WSAETOOMANYREFS
+WSAEUSERS
+WSAEWOULDBLOCK
+WSAGetLastError
+WSAHOST_NOT_FOUND
+WSANO_DATA
+WSANO_RECOVERY
+WSANOTINITIALISED
+WSAPROTOCOL_INFOW
+WSAPROTOCOLCHAIN
+WSARecv
+WSASend
+WSASERVICE_NOT_FOUND
+WSASocketW
+WSAStartup
+WSASYSCALLFAILURE
+WSASYSNOTREADY
+WSATRY_AGAIN
+WSATYPE_NOT_FOUND
+WSAVERNOTSUPPORTED
diff --git a/library/std/src/sys/pal/windows/c/windows_sys.rs b/library/std/src/sys/pal/windows/c/windows_sys.rs
index 79513d33a1ac..1d0e89f5d0f0 100644
--- a/library/std/src/sys/pal/windows/c/windows_sys.rs
+++ b/library/std/src/sys/pal/windows/c/windows_sys.rs
@@ -1,15 +1,14 @@
-// Bindings generated by `windows-bindgen` 0.58.0
+// Bindings generated by `windows-bindgen` 0.59.0
#![allow(non_snake_case, non_upper_case_globals, non_camel_case_types, dead_code, clippy::all)]
-windows_targets::link!("advapi32.dll" "system" fn OpenProcessToken(processhandle : HANDLE, desiredaccess : TOKEN_ACCESS_MASK, tokenhandle : *mut HANDLE) -> BOOL);
-windows_targets::link!("advapi32.dll" "system" "SystemFunction036" fn RtlGenRandom(randombuffer : *mut core::ffi::c_void, randombufferlength : u32) -> BOOLEAN);
+
windows_targets::link!("kernel32.dll" "system" fn AcquireSRWLockExclusive(srwlock : *mut SRWLOCK));
windows_targets::link!("kernel32.dll" "system" fn AcquireSRWLockShared(srwlock : *mut SRWLOCK));
windows_targets::link!("kernel32.dll" "system" fn AddVectoredExceptionHandler(first : u32, handler : PVECTORED_EXCEPTION_HANDLER) -> *mut core::ffi::c_void);
windows_targets::link!("kernel32.dll" "system" fn CancelIo(hfile : HANDLE) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn CloseHandle(hobject : HANDLE) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn CompareStringOrdinal(lpstring1 : PCWSTR, cchcount1 : i32, lpstring2 : PCWSTR, cchcount2 : i32, bignorecase : BOOL) -> COMPARESTRING_RESULT);
-windows_targets::link!("kernel32.dll" "system" fn CopyFileExW(lpexistingfilename : PCWSTR, lpnewfilename : PCWSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const core::ffi::c_void, pbcancel : *mut BOOL, dwcopyflags : u32) -> BOOL);
+windows_targets::link!("kernel32.dll" "system" fn CopyFileExW(lpexistingfilename : PCWSTR, lpnewfilename : PCWSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const core::ffi::c_void, pbcancel : *mut BOOL, dwcopyflags : COPYFILE_FLAGS) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn CreateDirectoryW(lppathname : PCWSTR, lpsecurityattributes : *const SECURITY_ATTRIBUTES) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn CreateEventW(lpeventattributes : *const SECURITY_ATTRIBUTES, bmanualreset : BOOL, binitialstate : BOOL, lpname : PCWSTR) -> HANDLE);
windows_targets::link!("kernel32.dll" "system" fn CreateFileW(lpfilename : PCWSTR, dwdesiredaccess : u32, dwsharemode : FILE_SHARE_MODE, lpsecurityattributes : *const SECURITY_ATTRIBUTES, dwcreationdisposition : FILE_CREATION_DISPOSITION, dwflagsandattributes : FILE_FLAGS_AND_ATTRIBUTES, htemplatefile : HANDLE) -> HANDLE);
@@ -17,7 +16,7 @@ windows_targets::link!("kernel32.dll" "system" fn CreateHardLinkW(lpfilename : P
windows_targets::link!("kernel32.dll" "system" fn CreateNamedPipeW(lpname : PCWSTR, dwopenmode : FILE_FLAGS_AND_ATTRIBUTES, dwpipemode : NAMED_PIPE_MODE, nmaxinstances : u32, noutbuffersize : u32, ninbuffersize : u32, ndefaulttimeout : u32, lpsecurityattributes : *const SECURITY_ATTRIBUTES) -> HANDLE);
windows_targets::link!("kernel32.dll" "system" fn CreatePipe(hreadpipe : *mut HANDLE, hwritepipe : *mut HANDLE, lppipeattributes : *const SECURITY_ATTRIBUTES, nsize : u32) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn CreateProcessW(lpapplicationname : PCWSTR, lpcommandline : PWSTR, lpprocessattributes : *const SECURITY_ATTRIBUTES, lpthreadattributes : *const SECURITY_ATTRIBUTES, binherithandles : BOOL, dwcreationflags : PROCESS_CREATION_FLAGS, lpenvironment : *const core::ffi::c_void, lpcurrentdirectory : PCWSTR, lpstartupinfo : *const STARTUPINFOW, lpprocessinformation : *mut PROCESS_INFORMATION) -> BOOL);
-windows_targets::link!("kernel32.dll" "system" fn CreateSymbolicLinkW(lpsymlinkfilename : PCWSTR, lptargetfilename : PCWSTR, dwflags : SYMBOLIC_LINK_FLAGS) -> BOOLEAN);
+windows_targets::link!("kernel32.dll" "system" fn CreateSymbolicLinkW(lpsymlinkfilename : PCWSTR, lptargetfilename : PCWSTR, dwflags : SYMBOLIC_LINK_FLAGS) -> bool);
windows_targets::link!("kernel32.dll" "system" fn CreateThread(lpthreadattributes : *const SECURITY_ATTRIBUTES, dwstacksize : usize, lpstartaddress : LPTHREAD_START_ROUTINE, lpparameter : *const core::ffi::c_void, dwcreationflags : THREAD_CREATION_FLAGS, lpthreadid : *mut u32) -> HANDLE);
windows_targets::link!("kernel32.dll" "system" fn CreateWaitableTimerExW(lptimerattributes : *const SECURITY_ATTRIBUTES, lptimername : PCWSTR, dwflags : u32, dwdesiredaccess : u32) -> HANDLE);
windows_targets::link!("kernel32.dll" "system" fn DeleteFileW(lpfilename : PCWSTR) -> BOOL);
@@ -61,6 +60,7 @@ windows_targets::link!("kernel32.dll" "system" fn GetSystemInfo(lpsysteminfo : *
windows_targets::link!("kernel32.dll" "system" fn GetSystemTimeAsFileTime(lpsystemtimeasfiletime : *mut FILETIME));
windows_targets::link!("kernel32.dll" "system" fn GetSystemTimePreciseAsFileTime(lpsystemtimeasfiletime : *mut FILETIME));
windows_targets::link!("kernel32.dll" "system" fn GetTempPathW(nbufferlength : u32, lpbuffer : PWSTR) -> u32);
+windows_targets::link!("userenv.dll" "system" fn GetUserProfileDirectoryW(htoken : HANDLE, lpprofiledir : PWSTR, lpcchsize : *mut u32) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn GetWindowsDirectoryW(lpbuffer : PWSTR, usize : u32) -> u32);
windows_targets::link!("kernel32.dll" "system" fn InitOnceBeginInitialize(lpinitonce : *mut INIT_ONCE, dwflags : u32, fpending : *mut BOOL, lpcontext : *mut *mut core::ffi::c_void) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn InitOnceComplete(lpinitonce : *mut INIT_ONCE, dwflags : u32, lpcontext : *const core::ffi::c_void) -> BOOL);
@@ -69,6 +69,11 @@ windows_targets::link!("kernel32.dll" "system" fn LocalFree(hmem : HLOCAL) -> HL
windows_targets::link!("kernel32.dll" "system" fn LockFileEx(hfile : HANDLE, dwflags : LOCK_FILE_FLAGS, dwreserved : u32, nnumberofbytestolocklow : u32, nnumberofbytestolockhigh : u32, lpoverlapped : *mut OVERLAPPED) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn MoveFileExW(lpexistingfilename : PCWSTR, lpnewfilename : PCWSTR, dwflags : MOVE_FILE_FLAGS) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn MultiByteToWideChar(codepage : u32, dwflags : MULTI_BYTE_TO_WIDE_CHAR_FLAGS, lpmultibytestr : PCSTR, cbmultibyte : i32, lpwidecharstr : PWSTR, cchwidechar : i32) -> i32);
+windows_targets::link!("ntdll.dll" "system" fn NtCreateFile(filehandle : *mut HANDLE, desiredaccess : FILE_ACCESS_RIGHTS, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : FILE_FLAGS_AND_ATTRIBUTES, shareaccess : FILE_SHARE_MODE, createdisposition : NTCREATEFILE_CREATE_DISPOSITION, createoptions : NTCREATEFILE_CREATE_OPTIONS, eabuffer : *const core::ffi::c_void, ealength : u32) -> NTSTATUS);
+windows_targets::link!("ntdll.dll" "system" fn NtOpenFile(filehandle : *mut HANDLE, desiredaccess : u32, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, shareaccess : u32, openoptions : u32) -> NTSTATUS);
+windows_targets::link!("ntdll.dll" "system" fn NtReadFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *mut core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS);
+windows_targets::link!("ntdll.dll" "system" fn NtWriteFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *const core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS);
+windows_targets::link!("advapi32.dll" "system" fn OpenProcessToken(processhandle : HANDLE, desiredaccess : TOKEN_ACCESS_MASK, tokenhandle : *mut HANDLE) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn QueryPerformanceCounter(lpperformancecount : *mut i64) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn QueryPerformanceFrequency(lpfrequency : *mut i64) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn ReadConsoleW(hconsoleinput : HANDLE, lpbuffer : *mut core::ffi::c_void, nnumberofcharstoread : u32, lpnumberofcharsread : *mut u32, pinputcontrol : *const CONSOLE_READCONSOLE_CONTROL) -> BOOL);
@@ -77,6 +82,8 @@ windows_targets::link!("kernel32.dll" "system" fn ReadFileEx(hfile : HANDLE, lpb
windows_targets::link!("kernel32.dll" "system" fn ReleaseSRWLockExclusive(srwlock : *mut SRWLOCK));
windows_targets::link!("kernel32.dll" "system" fn ReleaseSRWLockShared(srwlock : *mut SRWLOCK));
windows_targets::link!("kernel32.dll" "system" fn RemoveDirectoryW(lppathname : PCWSTR) -> BOOL);
+windows_targets::link!("advapi32.dll" "system" "SystemFunction036" fn RtlGenRandom(randombuffer : *mut core::ffi::c_void, randombufferlength : u32) -> bool);
+windows_targets::link!("ntdll.dll" "system" fn RtlNtStatusToDosError(status : NTSTATUS) -> u32);
windows_targets::link!("kernel32.dll" "system" fn SetCurrentDirectoryW(lppathname : PCWSTR) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn SetEnvironmentVariableW(lpname : PCWSTR, lpvalue : PCWSTR) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn SetFileAttributesW(lpfilename : PCWSTR, dwfileattributes : FILE_FLAGS_AND_ATTRIBUTES) -> BOOL);
@@ -96,23 +103,10 @@ windows_targets::link!("kernel32.dll" "system" fn TlsAlloc() -> u32);
windows_targets::link!("kernel32.dll" "system" fn TlsFree(dwtlsindex : u32) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn TlsGetValue(dwtlsindex : u32) -> *mut core::ffi::c_void);
windows_targets::link!("kernel32.dll" "system" fn TlsSetValue(dwtlsindex : u32, lptlsvalue : *const core::ffi::c_void) -> BOOL);
-windows_targets::link!("kernel32.dll" "system" fn TryAcquireSRWLockExclusive(srwlock : *mut SRWLOCK) -> BOOLEAN);
-windows_targets::link!("kernel32.dll" "system" fn TryAcquireSRWLockShared(srwlock : *mut SRWLOCK) -> BOOLEAN);
+windows_targets::link!("kernel32.dll" "system" fn TryAcquireSRWLockExclusive(srwlock : *mut SRWLOCK) -> bool);
+windows_targets::link!("kernel32.dll" "system" fn TryAcquireSRWLockShared(srwlock : *mut SRWLOCK) -> bool);
windows_targets::link!("kernel32.dll" "system" fn UnlockFile(hfile : HANDLE, dwfileoffsetlow : u32, dwfileoffsethigh : u32, nnumberofbytestounlocklow : u32, nnumberofbytestounlockhigh : u32) -> BOOL);
windows_targets::link!("kernel32.dll" "system" fn UpdateProcThreadAttribute(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST, dwflags : u32, attribute : usize, lpvalue : *const core::ffi::c_void, cbsize : usize, lppreviousvalue : *mut core::ffi::c_void, lpreturnsize : *const usize) -> BOOL);
-windows_targets::link!("kernel32.dll" "system" fn WaitForMultipleObjects(ncount : u32, lphandles : *const HANDLE, bwaitall : BOOL, dwmilliseconds : u32) -> WAIT_EVENT);
-windows_targets::link!("kernel32.dll" "system" fn WaitForSingleObject(hhandle : HANDLE, dwmilliseconds : u32) -> WAIT_EVENT);
-windows_targets::link!("kernel32.dll" "system" fn WakeAllConditionVariable(conditionvariable : *mut CONDITION_VARIABLE));
-windows_targets::link!("kernel32.dll" "system" fn WakeConditionVariable(conditionvariable : *mut CONDITION_VARIABLE));
-windows_targets::link!("kernel32.dll" "system" fn WideCharToMultiByte(codepage : u32, dwflags : u32, lpwidecharstr : PCWSTR, cchwidechar : i32, lpmultibytestr : PSTR, cbmultibyte : i32, lpdefaultchar : PCSTR, lpuseddefaultchar : *mut BOOL) -> i32);
-windows_targets::link!("kernel32.dll" "system" fn WriteConsoleW(hconsoleoutput : HANDLE, lpbuffer : PCWSTR, nnumberofcharstowrite : u32, lpnumberofcharswritten : *mut u32, lpreserved : *const core::ffi::c_void) -> BOOL);
-windows_targets::link!("kernel32.dll" "system" fn WriteFileEx(hfile : HANDLE, lpbuffer : *const u8, nnumberofbytestowrite : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL);
-windows_targets::link!("ntdll.dll" "system" fn NtCreateFile(filehandle : *mut HANDLE, desiredaccess : FILE_ACCESS_RIGHTS, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : FILE_FLAGS_AND_ATTRIBUTES, shareaccess : FILE_SHARE_MODE, createdisposition : NTCREATEFILE_CREATE_DISPOSITION, createoptions : NTCREATEFILE_CREATE_OPTIONS, eabuffer : *const core::ffi::c_void, ealength : u32) -> NTSTATUS);
-windows_targets::link!("ntdll.dll" "system" fn NtOpenFile(filehandle : *mut HANDLE, desiredaccess : u32, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, shareaccess : u32, openoptions : u32) -> NTSTATUS);
-windows_targets::link!("ntdll.dll" "system" fn NtReadFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *mut core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS);
-windows_targets::link!("ntdll.dll" "system" fn NtWriteFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *const core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS);
-windows_targets::link!("ntdll.dll" "system" fn RtlNtStatusToDosError(status : NTSTATUS) -> u32);
-windows_targets::link!("userenv.dll" "system" fn GetUserProfileDirectoryW(htoken : HANDLE, lpprofiledir : PWSTR, lpcchsize : *mut u32) -> BOOL);
windows_targets::link!("ws2_32.dll" "system" fn WSACleanup() -> i32);
windows_targets::link!("ws2_32.dll" "system" fn WSADuplicateSocketW(s : SOCKET, dwprocessid : u32, lpprotocolinfo : *mut WSAPROTOCOL_INFOW) -> i32);
windows_targets::link!("ws2_32.dll" "system" fn WSAGetLastError() -> WSA_ERROR);
@@ -120,6 +114,13 @@ windows_targets::link!("ws2_32.dll" "system" fn WSARecv(s : SOCKET, lpbuffers :
windows_targets::link!("ws2_32.dll" "system" fn WSASend(s : SOCKET, lpbuffers : *const WSABUF, dwbuffercount : u32, lpnumberofbytessent : *mut u32, dwflags : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32);
windows_targets::link!("ws2_32.dll" "system" fn WSASocketW(af : i32, r#type : i32, protocol : i32, lpprotocolinfo : *const WSAPROTOCOL_INFOW, g : u32, dwflags : u32) -> SOCKET);
windows_targets::link!("ws2_32.dll" "system" fn WSAStartup(wversionrequested : u16, lpwsadata : *mut WSADATA) -> i32);
+windows_targets::link!("kernel32.dll" "system" fn WaitForMultipleObjects(ncount : u32, lphandles : *const HANDLE, bwaitall : BOOL, dwmilliseconds : u32) -> WAIT_EVENT);
+windows_targets::link!("kernel32.dll" "system" fn WaitForSingleObject(hhandle : HANDLE, dwmilliseconds : u32) -> WAIT_EVENT);
+windows_targets::link!("kernel32.dll" "system" fn WakeAllConditionVariable(conditionvariable : *mut CONDITION_VARIABLE));
+windows_targets::link!("kernel32.dll" "system" fn WakeConditionVariable(conditionvariable : *mut CONDITION_VARIABLE));
+windows_targets::link!("kernel32.dll" "system" fn WideCharToMultiByte(codepage : u32, dwflags : u32, lpwidecharstr : PCWSTR, cchwidechar : i32, lpmultibytestr : PSTR, cbmultibyte : i32, lpdefaultchar : PCSTR, lpuseddefaultchar : *mut BOOL) -> i32);
+windows_targets::link!("kernel32.dll" "system" fn WriteConsoleW(hconsoleoutput : HANDLE, lpbuffer : PCWSTR, nnumberofcharstowrite : u32, lpnumberofcharswritten : *mut u32, lpreserved : *const core::ffi::c_void) -> BOOL);
+windows_targets::link!("kernel32.dll" "system" fn WriteFileEx(hfile : HANDLE, lpbuffer : *const u8, nnumberofbytestowrite : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL);
windows_targets::link!("ws2_32.dll" "system" fn accept(s : SOCKET, addr : *mut SOCKADDR, addrlen : *mut i32) -> SOCKET);
windows_targets::link!("ws2_32.dll" "system" fn bind(s : SOCKET, name : *const SOCKADDR, namelen : i32) -> i32);
windows_targets::link!("ws2_32.dll" "system" fn closesocket(s : SOCKET) -> i32);
@@ -139,6 +140,15 @@ windows_targets::link!("ws2_32.dll" "system" fn sendto(s : SOCKET, buf : PCSTR,
windows_targets::link!("ws2_32.dll" "system" fn setsockopt(s : SOCKET, level : i32, optname : i32, optval : PCSTR, optlen : i32) -> i32);
windows_targets::link!("ws2_32.dll" "system" fn shutdown(s : SOCKET, how : WINSOCK_SHUTDOWN_HOW) -> i32);
pub const ABOVE_NORMAL_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 32768u32;
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct ACL {
+ pub AclRevision: u8,
+ pub Sbz1: u8,
+ pub AclSize: u16,
+ pub AceCount: u16,
+ pub Sbz2: u16,
+}
pub type ADDRESS_FAMILY = u16;
#[repr(C)]
#[derive(Clone, Copy)]
@@ -174,7 +184,6 @@ pub struct ARM64_NT_NEON128_0 {
}
pub const BELOW_NORMAL_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 16384u32;
pub type BOOL = i32;
-pub type BOOLEAN = u8;
#[repr(C)]
#[derive(Clone, Copy)]
pub struct BY_HANDLE_FILE_INFORMATION {
@@ -207,64 +216,34 @@ pub struct CONSOLE_READCONSOLE_CONTROL {
pub dwControlKeyState: u32,
}
#[repr(C)]
-#[cfg(target_arch = "aarch64")]
+#[cfg(target_arch = "x86")]
#[derive(Clone, Copy)]
pub struct CONTEXT {
pub ContextFlags: CONTEXT_FLAGS,
- pub Cpsr: u32,
- pub Anonymous: CONTEXT_0,
- pub Sp: u64,
- pub Pc: u64,
- pub V: [ARM64_NT_NEON128; 32],
- pub Fpcr: u32,
- pub Fpsr: u32,
- pub Bcr: [u32; 8],
- pub Bvr: [u64; 8],
- pub Wcr: [u32; 2],
- pub Wvr: [u64; 2],
-}
-#[repr(C)]
-#[cfg(target_arch = "aarch64")]
-#[derive(Clone, Copy)]
-pub union CONTEXT_0 {
- pub Anonymous: CONTEXT_0_0,
- pub X: [u64; 31],
-}
-#[repr(C)]
-#[cfg(target_arch = "aarch64")]
-#[derive(Clone, Copy)]
-pub struct CONTEXT_0_0 {
- pub X0: u64,
- pub X1: u64,
- pub X2: u64,
- pub X3: u64,
- pub X4: u64,
- pub X5: u64,
- pub X6: u64,
- pub X7: u64,
- pub X8: u64,
- pub X9: u64,
- pub X10: u64,
- pub X11: u64,
- pub X12: u64,
- pub X13: u64,
- pub X14: u64,
- pub X15: u64,
- pub X16: u64,
- pub X17: u64,
- pub X18: u64,
- pub X19: u64,
- pub X20: u64,
- pub X21: u64,
- pub X22: u64,
- pub X23: u64,
- pub X24: u64,
- pub X25: u64,
- pub X26: u64,
- pub X27: u64,
- pub X28: u64,
- pub Fp: u64,
- pub Lr: u64,
+ pub Dr0: u32,
+ pub Dr1: u32,
+ pub Dr2: u32,
+ pub Dr3: u32,
+ pub Dr6: u32,
+ pub Dr7: u32,
+ pub FloatSave: FLOATING_SAVE_AREA,
+ pub SegGs: u32,
+ pub SegFs: u32,
+ pub SegEs: u32,
+ pub SegDs: u32,
+ pub Edi: u32,
+ pub Esi: u32,
+ pub Ebx: u32,
+ pub Edx: u32,
+ pub Ecx: u32,
+ pub Eax: u32,
+ pub Ebp: u32,
+ pub Eip: u32,
+ pub SegCs: u32,
+ pub EFlags: u32,
+ pub Esp: u32,
+ pub SegSs: u32,
+ pub ExtendedRegisters: [u8; 512],
}
#[repr(C)]
#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
@@ -348,36 +327,68 @@ pub struct CONTEXT_0_0 {
pub Xmm15: M128A,
}
#[repr(C)]
-#[cfg(target_arch = "x86")]
+#[cfg(target_arch = "aarch64")]
#[derive(Clone, Copy)]
pub struct CONTEXT {
pub ContextFlags: CONTEXT_FLAGS,
- pub Dr0: u32,
- pub Dr1: u32,
- pub Dr2: u32,
- pub Dr3: u32,
- pub Dr6: u32,
- pub Dr7: u32,
- pub FloatSave: FLOATING_SAVE_AREA,
- pub SegGs: u32,
- pub SegFs: u32,
- pub SegEs: u32,
- pub SegDs: u32,
- pub Edi: u32,
- pub Esi: u32,
- pub Ebx: u32,
- pub Edx: u32,
- pub Ecx: u32,
- pub Eax: u32,
- pub Ebp: u32,
- pub Eip: u32,
- pub SegCs: u32,
- pub EFlags: u32,
- pub Esp: u32,
- pub SegSs: u32,
- pub ExtendedRegisters: [u8; 512],
+ pub Cpsr: u32,
+ pub Anonymous: CONTEXT_0,
+ pub Sp: u64,
+ pub Pc: u64,
+ pub V: [ARM64_NT_NEON128; 32],
+ pub Fpcr: u32,
+ pub Fpsr: u32,
+ pub Bcr: [u32; 8],
+ pub Bvr: [u64; 8],
+ pub Wcr: [u32; 2],
+ pub Wvr: [u64; 2],
+}
+#[repr(C)]
+#[cfg(target_arch = "aarch64")]
+#[derive(Clone, Copy)]
+pub union CONTEXT_0 {
+ pub Anonymous: CONTEXT_0_0,
+ pub X: [u64; 31],
+}
+#[repr(C)]
+#[cfg(target_arch = "aarch64")]
+#[derive(Clone, Copy)]
+pub struct CONTEXT_0_0 {
+ pub X0: u64,
+ pub X1: u64,
+ pub X2: u64,
+ pub X3: u64,
+ pub X4: u64,
+ pub X5: u64,
+ pub X6: u64,
+ pub X7: u64,
+ pub X8: u64,
+ pub X9: u64,
+ pub X10: u64,
+ pub X11: u64,
+ pub X12: u64,
+ pub X13: u64,
+ pub X14: u64,
+ pub X15: u64,
+ pub X16: u64,
+ pub X17: u64,
+ pub X18: u64,
+ pub X19: u64,
+ pub X20: u64,
+ pub X21: u64,
+ pub X22: u64,
+ pub X23: u64,
+ pub X24: u64,
+ pub X25: u64,
+ pub X26: u64,
+ pub X27: u64,
+ pub X28: u64,
+ pub Fp: u64,
+ pub Lr: u64,
}
pub type CONTEXT_FLAGS = u32;
+pub type COPYFILE_FLAGS = u32;
+pub type COPYPROGRESSROUTINE_PROGRESS = u32;
pub const CP_UTF8: u32 = 65001u32;
pub const CREATE_ALWAYS: FILE_CREATION_DISPOSITION = 2u32;
pub const CREATE_BREAKAWAY_FROM_JOB: PROCESS_CREATION_FLAGS = 16777216u32;
@@ -2396,7 +2407,7 @@ pub const FILE_DISPOSITION_FLAG_POSIX_SEMANTICS: FILE_DISPOSITION_INFO_EX_FLAGS
#[repr(C)]
#[derive(Clone, Copy)]
pub struct FILE_DISPOSITION_INFO {
- pub DeleteFile: BOOLEAN,
+ pub DeleteFile: bool,
}
#[repr(C)]
#[derive(Clone, Copy)]
@@ -2486,7 +2497,7 @@ pub struct FILE_RENAME_INFO {
#[repr(C)]
#[derive(Clone, Copy)]
pub union FILE_RENAME_INFO_0 {
- pub ReplaceIfExists: BOOLEAN,
+ pub ReplaceIfExists: bool,
pub Flags: u32,
}
pub const FILE_RESERVE_OPFILTER: NTCREATEFILE_CREATE_OPTIONS = 1048576u32;
@@ -2503,8 +2514,8 @@ pub struct FILE_STANDARD_INFO {
pub AllocationSize: i64,
pub EndOfFile: i64,
pub NumberOfLinks: u32,
- pub DeletePending: BOOLEAN,
- pub Directory: BOOLEAN,
+ pub DeletePending: bool,
+ pub Directory: bool,
}
pub const FILE_SUPERSEDE: NTCREATEFILE_CREATE_DISPOSITION = 0u32;
pub const FILE_SYNCHRONOUS_IO_ALERT: NTCREATEFILE_CREATE_OPTIONS = 16u32;
@@ -2525,20 +2536,6 @@ pub type FINDEX_SEARCH_OPS = i32;
pub type FIND_FIRST_EX_FLAGS = u32;
pub const FIONBIO: i32 = -2147195266i32;
#[repr(C)]
-#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "x86_64"))]
-#[derive(Clone, Copy)]
-pub struct FLOATING_SAVE_AREA {
- pub ControlWord: u32,
- pub StatusWord: u32,
- pub TagWord: u32,
- pub ErrorOffset: u32,
- pub ErrorSelector: u32,
- pub DataOffset: u32,
- pub DataSelector: u32,
- pub RegisterArea: [u8; 80],
- pub Cr0NpxState: u32,
-}
-#[repr(C)]
#[cfg(target_arch = "x86")]
#[derive(Clone, Copy)]
pub struct FLOATING_SAVE_AREA {
@@ -2552,6 +2549,20 @@ pub struct FLOATING_SAVE_AREA {
pub RegisterArea: [u8; 80],
pub Spare0: u32,
}
+#[repr(C)]
+#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "x86_64"))]
+#[derive(Clone, Copy)]
+pub struct FLOATING_SAVE_AREA {
+ pub ControlWord: u32,
+ pub StatusWord: u32,
+ pub TagWord: u32,
+ pub ErrorOffset: u32,
+ pub ErrorSelector: u32,
+ pub DataOffset: u32,
+ pub DataSelector: u32,
+ pub RegisterArea: [u8; 80],
+ pub Cr0NpxState: u32,
+}
pub const FORMAT_MESSAGE_ALLOCATE_BUFFER: FORMAT_MESSAGE_OPTIONS = 256u32;
pub const FORMAT_MESSAGE_ARGUMENT_ARRAY: FORMAT_MESSAGE_OPTIONS = 8192u32;
pub const FORMAT_MESSAGE_FROM_HMODULE: FORMAT_MESSAGE_OPTIONS = 2048u32;
@@ -2618,6 +2629,7 @@ pub type HANDLE_FLAGS = u32;
pub const HANDLE_FLAG_INHERIT: HANDLE_FLAGS = 1u32;
pub const HANDLE_FLAG_PROTECT_FROM_CLOSE: HANDLE_FLAGS = 2u32;
pub const HIGH_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 128u32;
+pub type HINSTANCE = *mut core::ffi::c_void;
pub type HLOCAL = *mut core::ffi::c_void;
pub type HMODULE = *mut core::ffi::c_void;
pub type HRESULT = i32;
@@ -2771,7 +2783,7 @@ pub type LPPROGRESS_ROUTINE = Option<
hsourcefile: HANDLE,
hdestinationfile: HANDLE,
lpdata: *const core::ffi::c_void,
- ) -> u32,
+ ) -> COPYPROGRESSROUTINE_PROGRESS,
>;
pub type LPPROGRESS_ROUTINE_CALLBACK_REASON = u32;
pub type LPTHREAD_START_ROUTINE =
@@ -2822,11 +2834,12 @@ pub struct OBJECT_ATTRIBUTES {
pub Length: u32,
pub RootDirectory: HANDLE,
pub ObjectName: *const UNICODE_STRING,
- pub Attributes: u32,
- pub SecurityDescriptor: *const core::ffi::c_void,
- pub SecurityQualityOfService: *const core::ffi::c_void,
+ pub Attributes: OBJECT_ATTRIBUTE_FLAGS,
+ pub SecurityDescriptor: *const SECURITY_DESCRIPTOR,
+ pub SecurityQualityOfService: *const SECURITY_QUALITY_OF_SERVICE,
}
-pub const OBJ_DONT_REPARSE: i32 = 4096i32;
+pub type OBJECT_ATTRIBUTE_FLAGS = u32;
+pub const OBJ_DONT_REPARSE: OBJECT_ATTRIBUTE_FLAGS = 4096u32;
pub const OPEN_ALWAYS: FILE_CREATION_DISPOSITION = 4u32;
pub const OPEN_EXISTING: FILE_CREATION_DISPOSITION = 3u32;
#[repr(C)]
@@ -2887,7 +2900,8 @@ pub const PROCESS_MODE_BACKGROUND_END: PROCESS_CREATION_FLAGS = 2097152u32;
pub const PROFILE_KERNEL: PROCESS_CREATION_FLAGS = 536870912u32;
pub const PROFILE_SERVER: PROCESS_CREATION_FLAGS = 1073741824u32;
pub const PROFILE_USER: PROCESS_CREATION_FLAGS = 268435456u32;
-pub const PROGRESS_CONTINUE: u32 = 0u32;
+pub const PROGRESS_CONTINUE: COPYPROGRESSROUTINE_PROGRESS = 0u32;
+pub type PSID = *mut core::ffi::c_void;
pub type PSTR = *mut u8;
pub type PTIMERAPCROUTINE = Option<
unsafe extern "system" fn(
@@ -2914,9 +2928,30 @@ pub struct SECURITY_ATTRIBUTES {
}
pub const SECURITY_CONTEXT_TRACKING: FILE_FLAGS_AND_ATTRIBUTES = 262144u32;
pub const SECURITY_DELEGATION: FILE_FLAGS_AND_ATTRIBUTES = 196608u32;
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct SECURITY_DESCRIPTOR {
+ pub Revision: u8,
+ pub Sbz1: u8,
+ pub Control: SECURITY_DESCRIPTOR_CONTROL,
+ pub Owner: PSID,
+ pub Group: PSID,
+ pub Sacl: *mut ACL,
+ pub Dacl: *mut ACL,
+}
+pub type SECURITY_DESCRIPTOR_CONTROL = u16;
pub const SECURITY_EFFECTIVE_ONLY: FILE_FLAGS_AND_ATTRIBUTES = 524288u32;
pub const SECURITY_IDENTIFICATION: FILE_FLAGS_AND_ATTRIBUTES = 65536u32;
pub const SECURITY_IMPERSONATION: FILE_FLAGS_AND_ATTRIBUTES = 131072u32;
+pub type SECURITY_IMPERSONATION_LEVEL = i32;
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct SECURITY_QUALITY_OF_SERVICE {
+ pub Length: u32,
+ pub ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
+ pub ContextTrackingMode: u8,
+ pub EffectiveOnly: bool,
+}
pub const SECURITY_SQOS_PRESENT: FILE_FLAGS_AND_ATTRIBUTES = 1048576u32;
pub const SECURITY_VALID_SQOS_FLAGS: FILE_FLAGS_AND_ATTRIBUTES = 2031616u32;
pub type SEND_RECV_FLAGS = i32;
@@ -3137,18 +3172,6 @@ pub struct WSABUF {
pub buf: PSTR,
}
#[repr(C)]
-#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "x86_64"))]
-#[derive(Clone, Copy)]
-pub struct WSADATA {
- pub wVersion: u16,
- pub wHighVersion: u16,
- pub iMaxSockets: u16,
- pub iMaxUdpDg: u16,
- pub lpVendorInfo: PSTR,
- pub szDescription: [i8; 257],
- pub szSystemStatus: [i8; 129],
-}
-#[repr(C)]
#[cfg(target_arch = "x86")]
#[derive(Clone, Copy)]
pub struct WSADATA {
@@ -3160,6 +3183,18 @@ pub struct WSADATA {
pub iMaxUdpDg: u16,
pub lpVendorInfo: PSTR,
}
+#[repr(C)]
+#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "x86_64"))]
+#[derive(Clone, Copy)]
+pub struct WSADATA {
+ pub wVersion: u16,
+ pub wHighVersion: u16,
+ pub iMaxSockets: u16,
+ pub iMaxUdpDg: u16,
+ pub lpVendorInfo: PSTR,
+ pub szDescription: [i8; 257],
+ pub szSystemStatus: [i8; 129],
+}
pub const WSAEACCES: WSA_ERROR = 10013i32;
pub const WSAEADDRINUSE: WSA_ERROR = 10048i32;
pub const WSAEADDRNOTAVAIL: WSA_ERROR = 10049i32;
@@ -3293,27 +3328,6 @@ pub const WSA_SECURE_HOST_NOT_FOUND: WSA_ERROR = 11032i32;
pub const WSA_WAIT_EVENT_0: WSA_ERROR = 0i32;
pub const WSA_WAIT_IO_COMPLETION: WSA_ERROR = 192i32;
#[repr(C)]
-#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "x86_64"))]
-#[derive(Clone, Copy)]
-pub struct XSAVE_FORMAT {
- pub ControlWord: u16,
- pub StatusWord: u16,
- pub TagWord: u8,
- pub Reserved1: u8,
- pub ErrorOpcode: u16,
- pub ErrorOffset: u32,
- pub ErrorSelector: u16,
- pub Reserved2: u16,
- pub DataOffset: u32,
- pub DataSelector: u16,
- pub Reserved3: u16,
- pub MxCsr: u32,
- pub MxCsr_Mask: u32,
- pub FloatRegisters: [M128A; 8],
- pub XmmRegisters: [M128A; 16],
- pub Reserved4: [u8; 96],
-}
-#[repr(C)]
#[cfg(target_arch = "x86")]
#[derive(Clone, Copy)]
pub struct XSAVE_FORMAT {
@@ -3334,6 +3348,27 @@ pub struct XSAVE_FORMAT {
pub XmmRegisters: [M128A; 8],
pub Reserved4: [u8; 224],
}
+#[repr(C)]
+#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "x86_64"))]
+#[derive(Clone, Copy)]
+pub struct XSAVE_FORMAT {
+ pub ControlWord: u16,
+ pub StatusWord: u16,
+ pub TagWord: u8,
+ pub Reserved1: u8,
+ pub ErrorOpcode: u16,
+ pub ErrorOffset: u32,
+ pub ErrorSelector: u16,
+ pub Reserved2: u16,
+ pub DataOffset: u32,
+ pub DataSelector: u16,
+ pub Reserved3: u16,
+ pub MxCsr: u32,
+ pub MxCsr_Mask: u32,
+ pub FloatRegisters: [M128A; 8],
+ pub XmmRegisters: [M128A; 16],
+ pub Reserved4: [u8; 96],
+}
#[cfg(target_arch = "arm")]
#[repr(C)]
diff --git a/library/std/src/sys/pal/windows/fs.rs b/library/std/src/sys/pal/windows/fs.rs
index b786c79004f6..62d4d727432c 100644
--- a/library/std/src/sys/pal/windows/fs.rs
+++ b/library/std/src/sys/pal/windows/fs.rs
@@ -812,7 +812,7 @@ impl File {
/// will prevent anyone from opening a new handle to the file.
#[allow(unused)]
fn win32_delete(&self) -> Result<(), WinError> {
- let info = c::FILE_DISPOSITION_INFO { DeleteFile: c::TRUE as _ };
+ let info = c::FILE_DISPOSITION_INFO { DeleteFile: true };
api::set_file_information_by_handle(self.handle.as_raw_handle(), &info)
}
@@ -1372,7 +1372,7 @@ pub fn rename(old: &Path, new: &Path) -> io::Result<()> {
if let Err(err) = result {
if err.raw_os_error() == Some(c::ERROR_INVALID_PARAMETER as _) {
// FileRenameInfoEx and FILE_RENAME_FLAG_POSIX_SEMANTICS were added in Windows 10 1607; retry with FileRenameInfo.
- file_rename_info.Anonymous.ReplaceIfExists = 1;
+ file_rename_info.Anonymous.ReplaceIfExists = true;
cvt(unsafe {
c::SetFileInformationByHandle(
diff --git a/src/tools/generate-windows-sys/Cargo.toml b/src/tools/generate-windows-sys/Cargo.toml
index 882d3d635252..f5c0e56bb3c2 100644
--- a/src/tools/generate-windows-sys/Cargo.toml
+++ b/src/tools/generate-windows-sys/Cargo.toml
@@ -4,4 +4,4 @@ version = "0.1.0"
edition = "2021"
[dependencies.windows-bindgen]
-version = "0.58.0"
+version = "0.59.0"
diff --git a/src/tools/generate-windows-sys/src/main.rs b/src/tools/generate-windows-sys/src/main.rs
index 6dbf29d957f1..6bf47e840627 100644
--- a/src/tools/generate-windows-sys/src/main.rs
+++ b/src/tools/generate-windows-sys/src/main.rs
@@ -29,8 +29,7 @@ fn main() -> Result<(), Box> {
sort_bindings("bindings.txt")?;
- let info = windows_bindgen::bindgen(["--etc", "bindings.txt"])?;
- println!("{info}");
+ windows_bindgen::bindgen(["--etc", "bindings.txt"]);
let mut f = std::fs::File::options().append(true).open("windows_sys.rs")?;
f.write_all(ARM32_SHIM.as_bytes())?;
From c27715bf66353eb77625eec2f9ebcf4bda68497d Mon Sep 17 00:00:00 2001
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Date: Thu, 13 Feb 2025 14:22:57 +0000
Subject: [PATCH 14/59] Use abi rather than preferred alignment everywhere
Turns out the size of a type is not necessarily a multiple of the
preferred alignment, which broke the realignment logic in
create_stack_slot.
---
src/abi/pass_mode.rs | 2 +-
src/common.rs | 5 +++++
src/debuginfo/mod.rs | 2 +-
src/debuginfo/types.rs | 4 ++--
src/value_and_place.rs | 6 +++---
5 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/src/abi/pass_mode.rs b/src/abi/pass_mode.rs
index 7594a53fc758..b28c4c9539ce 100644
--- a/src/abi/pass_mode.rs
+++ b/src/abi/pass_mode.rs
@@ -195,7 +195,7 @@ pub(super) fn from_casted_value<'tcx>(
// It may also be smaller for example when the type is a wrapper around an integer with a
// larger alignment than the integer.
std::cmp::max(abi_param_size, layout_size),
- u32::try_from(layout.align.pref.bytes()).unwrap(),
+ u32::try_from(layout.align.abi.bytes()).unwrap(),
);
let mut offset = 0;
let mut block_params_iter = block_params.iter().copied();
diff --git a/src/common.rs b/src/common.rs
index 534557fcd41b..25941e07a195 100644
--- a/src/common.rs
+++ b/src/common.rs
@@ -382,6 +382,11 @@ impl<'tcx> FunctionCx<'_, '_, 'tcx> {
}
pub(crate) fn create_stack_slot(&mut self, size: u32, align: u32) -> Pointer {
+ assert!(
+ size % align == 0,
+ "size must be a multiple of alignment (size={size}, align={align})"
+ );
+
let abi_align = if self.tcx.sess.target.arch == "s390x" { 8 } else { 16 };
if align <= abi_align {
let stack_slot = self.bcx.create_sized_stack_slot(StackSlotData {
diff --git a/src/debuginfo/mod.rs b/src/debuginfo/mod.rs
index f3a8623e2161..bba6567774d7 100644
--- a/src/debuginfo/mod.rs
+++ b/src/debuginfo/mod.rs
@@ -304,7 +304,7 @@ impl DebugContext {
entry.set(gimli::DW_AT_decl_file, AttributeValue::FileIndex(Some(file_id)));
entry.set(gimli::DW_AT_decl_line, AttributeValue::Udata(line));
- entry.set(gimli::DW_AT_alignment, AttributeValue::Udata(static_layout.align.pref.bytes()));
+ entry.set(gimli::DW_AT_alignment, AttributeValue::Udata(static_layout.align.abi.bytes()));
let mut expr = Expression::new();
expr.op_addr(address_for_data(data_id));
diff --git a/src/debuginfo/types.rs b/src/debuginfo/types.rs
index a2f6691cdd23..017d7784dc03 100644
--- a/src/debuginfo/types.rs
+++ b/src/debuginfo/types.rs
@@ -166,7 +166,7 @@ impl DebugContext {
let tuple_entry = self.dwarf.unit.get_mut(tuple_type_id);
tuple_entry.set(gimli::DW_AT_name, AttributeValue::StringRef(self.dwarf.strings.add(name)));
tuple_entry.set(gimli::DW_AT_byte_size, AttributeValue::Udata(layout.size.bytes()));
- tuple_entry.set(gimli::DW_AT_alignment, AttributeValue::Udata(layout.align.pref.bytes()));
+ tuple_entry.set(gimli::DW_AT_alignment, AttributeValue::Udata(layout.align.abi.bytes()));
for (i, (ty, dw_ty)) in components.into_iter().enumerate() {
let member_id = self.dwarf.unit.add(tuple_type_id, gimli::DW_TAG_member);
@@ -179,7 +179,7 @@ impl DebugContext {
member_entry.set(
gimli::DW_AT_alignment,
AttributeValue::Udata(
- FullyMonomorphizedLayoutCx(tcx).layout_of(ty).align.pref.bytes(),
+ FullyMonomorphizedLayoutCx(tcx).layout_of(ty).align.abi.bytes(),
),
);
member_entry.set(
diff --git a/src/value_and_place.rs b/src/value_and_place.rs
index c17d1f30fbe3..a9b8e1bd3935 100644
--- a/src/value_and_place.rs
+++ b/src/value_and_place.rs
@@ -101,7 +101,7 @@ impl<'tcx> CValue<'tcx> {
/// The is represented by a dangling pointer of suitable alignment.
pub(crate) fn zst(layout: TyAndLayout<'tcx>) -> CValue<'tcx> {
assert!(layout.is_zst());
- CValue::by_ref(crate::Pointer::dangling(layout.align.pref), layout)
+ CValue::by_ref(crate::Pointer::dangling(layout.align.abi), layout)
}
pub(crate) fn layout(&self) -> TyAndLayout<'tcx> {
@@ -392,7 +392,7 @@ impl<'tcx> CPlace<'tcx> {
assert!(layout.is_sized());
if layout.size.bytes() == 0 {
return CPlace {
- inner: CPlaceInner::Addr(Pointer::dangling(layout.align.pref), None),
+ inner: CPlaceInner::Addr(Pointer::dangling(layout.align.abi), None),
layout,
};
}
@@ -405,7 +405,7 @@ impl<'tcx> CPlace<'tcx> {
let stack_slot = fx.create_stack_slot(
u32::try_from(layout.size.bytes()).unwrap(),
- u32::try_from(layout.align.pref.bytes()).unwrap(),
+ u32::try_from(layout.align.abi.bytes()).unwrap(),
);
CPlace { inner: CPlaceInner::Addr(stack_slot, None), layout }
}
From 27e8329b2071e3be980c149c23bc15093681065d Mon Sep 17 00:00:00 2001
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Date: Thu, 13 Feb 2025 14:23:18 +0000
Subject: [PATCH 15/59] Slightly optimize dynamic realignment in
create_stack_slot
---
src/common.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/common.rs b/src/common.rs
index 25941e07a195..766278d87183 100644
--- a/src/common.rs
+++ b/src/common.rs
@@ -408,7 +408,7 @@ impl<'tcx> FunctionCx<'_, '_, 'tcx> {
align_shift: 4,
});
let base_ptr = self.bcx.ins().stack_addr(self.pointer_type, stack_slot, 0);
- let misalign_offset = self.bcx.ins().urem_imm(base_ptr, i64::from(align));
+ let misalign_offset = self.bcx.ins().band_imm(base_ptr, i64::from(align - 1));
let realign_offset = self.bcx.ins().irsub_imm(misalign_offset, i64::from(align));
Pointer::new(self.bcx.ins().iadd(base_ptr, realign_offset))
}
From cdadd5f4cd12a273290202bc17121195e7ee96bc Mon Sep 17 00:00:00 2001
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Date: Thu, 13 Feb 2025 14:29:49 +0000
Subject: [PATCH 16/59] Use correct size for stack slot in inline asm codegen
---
src/inline_asm.rs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/inline_asm.rs b/src/inline_asm.rs
index f2b0ec977c63..310b226814d4 100644
--- a/src/inline_asm.rs
+++ b/src/inline_asm.rs
@@ -871,7 +871,8 @@ fn call_inline_asm<'tcx>(
inputs: Vec<(Size, Value)>,
outputs: Vec<(Size, CPlace<'tcx>)>,
) {
- let stack_slot = fx.create_stack_slot(u32::try_from(slot_size.bytes()).unwrap(), 16);
+ let stack_slot =
+ fx.create_stack_slot(u32::try_from(slot_size.bytes().next_multiple_of(16)).unwrap(), 16);
let inline_asm_func = fx
.module
From 8dda1ebfb6d22de555b05c2d2e882adfe967a18f Mon Sep 17 00:00:00 2001
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Date: Thu, 13 Feb 2025 14:54:50 +0000
Subject: [PATCH 17/59] Update rustfmt.toml to match the rust repo
---
rustfmt.toml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/rustfmt.toml b/rustfmt.toml
index d9e6ac3d543c..f31fa9c76abc 100644
--- a/rustfmt.toml
+++ b/rustfmt.toml
@@ -3,8 +3,9 @@ ignore = [
]
# Matches rustfmt.toml of rustc
-version = "Two"
+style_edition = "2024"
use_small_heuristics = "Max"
merge_derives = false
group_imports = "StdExternalCrate"
imports_granularity = "Module"
+use_field_init_shorthand = true
From 66bcca11edeb0454c4fec6443cf150525c5e7132 Mon Sep 17 00:00:00 2001
From: clubby789
Date: Mon, 13 Jan 2025 15:52:08 +0000
Subject: [PATCH 18/59] Make `-O` mean `-C opt-level=3`
---
src/lib.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lib.rs b/src/lib.rs
index b01534199030..a3f437448757 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -289,7 +289,7 @@ fn build_isa(sess: &Session) -> Arc {
flags_builder.set("opt_level", "none").unwrap();
}
OptLevel::Less
- | OptLevel::Default
+ | OptLevel::More
| OptLevel::Size
| OptLevel::SizeMin
| OptLevel::Aggressive => {
From b8f0ed37bd96ab6731a62a7a4f5dc1cd493138b3 Mon Sep 17 00:00:00 2001
From: Pavel Grigorenko
Date: Fri, 31 Jan 2025 02:52:29 +0300
Subject: [PATCH 19/59] Implement `f{16,32,64,128}::{erf,erfc}`
Also add
```rust
// #[unstable(feature = "float_gamma", issue = "99842")]
```
to `gamma`-function-related methods on `f16` & `f128`,
as per https://github.com/rust-lang/rust/pull/136324#issuecomment-2626270247
---
library/std/src/f128.rs | 74 ++++++++++++++++++++++++++++++++++++
library/std/src/f16.rs | 72 +++++++++++++++++++++++++++++++++++
library/std/src/f32.rs | 64 +++++++++++++++++++++++++++++++
library/std/src/f64.rs | 64 +++++++++++++++++++++++++++++++
library/std/src/sys/cmath.rs | 6 +++
5 files changed, 280 insertions(+)
diff --git a/library/std/src/f128.rs b/library/std/src/f128.rs
index 89612fa74755..133e91eaf324 100644
--- a/library/std/src/f128.rs
+++ b/library/std/src/f128.rs
@@ -1226,6 +1226,7 @@ impl f128 {
#[inline]
#[rustc_allow_incoherent_impl]
#[unstable(feature = "f128", issue = "116909")]
+ // #[unstable(feature = "float_gamma", issue = "99842")]
#[must_use = "method returns a new number and does not mutate the original value"]
pub fn gamma(self) -> f128 {
unsafe { cmath::tgammaf128(self) }
@@ -1260,10 +1261,83 @@ impl f128 {
#[inline]
#[rustc_allow_incoherent_impl]
#[unstable(feature = "f128", issue = "116909")]
+ // #[unstable(feature = "float_gamma", issue = "99842")]
#[must_use = "method returns a new number and does not mutate the original value"]
pub fn ln_gamma(self) -> (f128, i32) {
let mut signgamp: i32 = 0;
let x = unsafe { cmath::lgammaf128_r(self, &mut signgamp) };
(x, signgamp)
}
+
+ /// Error function.
+ ///
+ /// # Unspecified precision
+ ///
+ /// The precision of this function is non-deterministic. This means it varies by platform,
+ /// Rust version, and can even differ within the same execution from one invocation to the next.
+ ///
+ /// This function currently corresponds to the `erff128` from libc on Unix
+ /// and Windows. Note that this might change in the future.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// #![feature(f128)]
+ /// #![feature(float_erf)]
+ /// # #[cfg(reliable_f128_math)] {
+ /// /// The error function relates what percent of a normal distribution lies
+ /// /// within `x` standard deviations (scaled by `1/sqrt(2)`).
+ /// fn within_standard_deviations(x: f128) -> f128 {
+ /// (x * std::f128::consts::FRAC_1_SQRT_2).erf() * 100.0
+ /// }
+ ///
+ /// // 68% of a normal distribution is within one standard deviation
+ /// assert!((within_standard_deviations(1.0) - 68.269).abs() < 0.01);
+ /// // 95% of a normal distribution is within two standard deviations
+ /// assert!((within_standard_deviations(2.0) - 95.450).abs() < 0.01);
+ /// // 99.7% of a normal distribution is within three standard deviations
+ /// assert!((within_standard_deviations(3.0) - 99.730).abs() < 0.01);
+ /// # }
+ /// ```
+ #[rustc_allow_incoherent_impl]
+ #[must_use = "method returns a new number and does not mutate the original value"]
+ #[unstable(feature = "f128", issue = "116909")]
+ // #[unstable(feature = "float_erf", issue = "136321")]
+ #[inline]
+ pub fn erf(self) -> f128 {
+ unsafe { cmath::erff128(self) }
+ }
+
+ /// Complementary error function.
+ ///
+ /// # Unspecified precision
+ ///
+ /// The precision of this function is non-deterministic. This means it varies by platform,
+ /// Rust version, and can even differ within the same execution from one invocation to the next.
+ ///
+ /// This function currently corresponds to the `erfcf128` from libc on Unix
+ /// and Windows. Note that this might change in the future.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// #![feature(f128)]
+ /// #![feature(float_erf)]
+ /// # #[cfg(reliable_f128_math)] {
+ /// let x: f128 = 0.123;
+ ///
+ /// let one = x.erf() + x.erfc();
+ /// let abs_difference = (one - 1.0).abs();
+ ///
+ /// assert!(abs_difference <= f128::EPSILON);
+ /// # }
+ /// ```
+ #[rustc_allow_incoherent_impl]
+ #[must_use = "method returns a new number and does not mutate the original value"]
+ #[unstable(feature = "f128", issue = "116909")]
+ // #[unstable(feature = "float_erf", issue = "136321")]
+ #[inline]
+ pub fn erfc(self) -> f128 {
+ unsafe { cmath::erfcf128(self) }
+ }
}
diff --git a/library/std/src/f16.rs b/library/std/src/f16.rs
index cc523c93b4de..c342250ae4ea 100644
--- a/library/std/src/f16.rs
+++ b/library/std/src/f16.rs
@@ -1224,6 +1224,7 @@ impl f16 {
#[inline]
#[rustc_allow_incoherent_impl]
#[unstable(feature = "f16", issue = "116909")]
+ // #[unstable(feature = "float_gamma", issue = "99842")]
#[must_use = "method returns a new number and does not mutate the original value"]
pub fn gamma(self) -> f16 {
(unsafe { cmath::tgammaf(self as f32) }) as f16
@@ -1258,10 +1259,81 @@ impl f16 {
#[inline]
#[rustc_allow_incoherent_impl]
#[unstable(feature = "f16", issue = "116909")]
+ // #[unstable(feature = "float_gamma", issue = "99842")]
#[must_use = "method returns a new number and does not mutate the original value"]
pub fn ln_gamma(self) -> (f16, i32) {
let mut signgamp: i32 = 0;
let x = (unsafe { cmath::lgammaf_r(self as f32, &mut signgamp) }) as f16;
(x, signgamp)
}
+
+ /// Error function.
+ ///
+ /// # Unspecified precision
+ ///
+ /// The precision of this function is non-deterministic. This means it varies by platform,
+ /// Rust version, and can even differ within the same execution from one invocation to the next.
+ ///
+ /// This function currently corresponds to the `erff` from libc on Unix
+ /// and Windows. Note that this might change in the future.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// #![feature(f16)]
+ /// #![feature(float_erf)]
+ /// # #[cfg(reliable_f16_math)] {
+ /// /// The error function relates what percent of a normal distribution lies
+ /// /// within `x` standard deviations (scaled by `1/sqrt(2)`).
+ /// fn within_standard_deviations(x: f16) -> f16 {
+ /// (x * std::f16::consts::FRAC_1_SQRT_2).erf() * 100.0
+ /// }
+ ///
+ /// // 68% of a normal distribution is within one standard deviation
+ /// assert!((within_standard_deviations(1.0) - 68.269).abs() < 0.1);
+ /// // 95% of a normal distribution is within two standard deviations
+ /// assert!((within_standard_deviations(2.0) - 95.450).abs() < 0.1);
+ /// // 99.7% of a normal distribution is within three standard deviations
+ /// assert!((within_standard_deviations(3.0) - 99.730).abs() < 0.1);
+ /// # }
+ /// ```
+ #[rustc_allow_incoherent_impl]
+ #[must_use = "method returns a new number and does not mutate the original value"]
+ #[unstable(feature = "f16", issue = "116909")]
+ // #[unstable(feature = "float_erf", issue = "136321")]
+ #[inline]
+ pub fn erf(self) -> f16 {
+ (unsafe { cmath::erff(self as f32) }) as f16
+ }
+
+ /// Complementary error function.
+ ///
+ /// # Unspecified precision
+ ///
+ /// The precision of this function is non-deterministic. This means it varies by platform,
+ /// Rust version, and can even differ within the same execution from one invocation to the next.
+ ///
+ /// This function currently corresponds to the `erfcf` from libc on Unix
+ /// and Windows. Note that this might change in the future.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// #![feature(f16)]
+ /// #![feature(float_erf)]
+ /// let x: f16 = 0.123;
+ ///
+ /// let one = x.erf() + x.erfc();
+ /// let abs_difference = (one - 1.0).abs();
+ ///
+ /// assert!(abs_difference <= f16::EPSILON);
+ /// ```
+ #[rustc_allow_incoherent_impl]
+ #[must_use = "method returns a new number and does not mutate the original value"]
+ #[unstable(feature = "f16", issue = "116909")]
+ // #[unstable(feature = "float_erf", issue = "136321")]
+ #[inline]
+ pub fn erfc(self) -> f16 {
+ (unsafe { cmath::erfcf(self as f32) }) as f16
+ }
}
diff --git a/library/std/src/f32.rs b/library/std/src/f32.rs
index 260c499b7f4b..295eee8700af 100644
--- a/library/std/src/f32.rs
+++ b/library/std/src/f32.rs
@@ -1151,4 +1151,68 @@ impl f32 {
let x = unsafe { cmath::lgammaf_r(self, &mut signgamp) };
(x, signgamp)
}
+
+ /// Error function.
+ ///
+ /// # Unspecified precision
+ ///
+ /// The precision of this function is non-deterministic. This means it varies by platform,
+ /// Rust version, and can even differ within the same execution from one invocation to the next.
+ ///
+ /// This function currently corresponds to the `erff` from libc on Unix
+ /// and Windows. Note that this might change in the future.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// #![feature(float_erf)]
+ /// /// The error function relates what percent of a normal distribution lies
+ /// /// within `x` standard deviations (scaled by `1/sqrt(2)`).
+ /// fn within_standard_deviations(x: f32) -> f32 {
+ /// (x * std::f32::consts::FRAC_1_SQRT_2).erf() * 100.0
+ /// }
+ ///
+ /// // 68% of a normal distribution is within one standard deviation
+ /// assert!((within_standard_deviations(1.0) - 68.269).abs() < 0.01);
+ /// // 95% of a normal distribution is within two standard deviations
+ /// assert!((within_standard_deviations(2.0) - 95.450).abs() < 0.01);
+ /// // 99.7% of a normal distribution is within three standard deviations
+ /// assert!((within_standard_deviations(3.0) - 99.730).abs() < 0.01);
+ /// ```
+ #[rustc_allow_incoherent_impl]
+ #[must_use = "method returns a new number and does not mutate the original value"]
+ #[unstable(feature = "float_erf", issue = "136321")]
+ #[inline]
+ pub fn erf(self) -> f32 {
+ unsafe { cmath::erff(self) }
+ }
+
+ /// Complementary error function.
+ ///
+ /// # Unspecified precision
+ ///
+ /// The precision of this function is non-deterministic. This means it varies by platform,
+ /// Rust version, and can even differ within the same execution from one invocation to the next.
+ ///
+ /// This function currently corresponds to the `erfcf` from libc on Unix
+ /// and Windows. Note that this might change in the future.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// #![feature(float_erf)]
+ /// let x: f32 = 0.123;
+ ///
+ /// let one = x.erf() + x.erfc();
+ /// let abs_difference = (one - 1.0).abs();
+ ///
+ /// assert!(abs_difference <= f32::EPSILON);
+ /// ```
+ #[rustc_allow_incoherent_impl]
+ #[must_use = "method returns a new number and does not mutate the original value"]
+ #[unstable(feature = "float_erf", issue = "136321")]
+ #[inline]
+ pub fn erfc(self) -> f32 {
+ unsafe { cmath::erfcf(self) }
+ }
}
diff --git a/library/std/src/f64.rs b/library/std/src/f64.rs
index 7af646f8cfd6..0d713ecbc731 100644
--- a/library/std/src/f64.rs
+++ b/library/std/src/f64.rs
@@ -1151,4 +1151,68 @@ impl f64 {
let x = unsafe { cmath::lgamma_r(self, &mut signgamp) };
(x, signgamp)
}
+
+ /// Error function.
+ ///
+ /// # Unspecified precision
+ ///
+ /// The precision of this function is non-deterministic. This means it varies by platform,
+ /// Rust version, and can even differ within the same execution from one invocation to the next.
+ ///
+ /// This function currently corresponds to the `erf` from libc on Unix
+ /// and Windows. Note that this might change in the future.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// #![feature(float_erf)]
+ /// /// The error function relates what percent of a normal distribution lies
+ /// /// within `x` standard deviations (scaled by `1/sqrt(2)`).
+ /// fn within_standard_deviations(x: f64) -> f64 {
+ /// (x * std::f64::consts::FRAC_1_SQRT_2).erf() * 100.0
+ /// }
+ ///
+ /// // 68% of a normal distribution is within one standard deviation
+ /// assert!((within_standard_deviations(1.0) - 68.269).abs() < 0.01);
+ /// // 95% of a normal distribution is within two standard deviations
+ /// assert!((within_standard_deviations(2.0) - 95.450).abs() < 0.01);
+ /// // 99.7% of a normal distribution is within three standard deviations
+ /// assert!((within_standard_deviations(3.0) - 99.730).abs() < 0.01);
+ /// ```
+ #[rustc_allow_incoherent_impl]
+ #[must_use = "method returns a new number and does not mutate the original value"]
+ #[unstable(feature = "float_erf", issue = "136321")]
+ #[inline]
+ pub fn erf(self) -> f64 {
+ unsafe { cmath::erf(self) }
+ }
+
+ /// Complementary error function.
+ ///
+ /// # Unspecified precision
+ ///
+ /// The precision of this function is non-deterministic. This means it varies by platform,
+ /// Rust version, and can even differ within the same execution from one invocation to the next.
+ ///
+ /// This function currently corresponds to the `erfc` from libc on Unix
+ /// and Windows. Note that this might change in the future.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// #![feature(float_erf)]
+ /// let x: f64 = 0.123;
+ ///
+ /// let one = x.erf() + x.erfc();
+ /// let abs_difference = (one - 1.0).abs();
+ ///
+ /// assert!(abs_difference <= f64::EPSILON);
+ /// ```
+ #[rustc_allow_incoherent_impl]
+ #[must_use = "method returns a new number and does not mutate the original value"]
+ #[unstable(feature = "float_erf", issue = "136321")]
+ #[inline]
+ pub fn erfc(self) -> f64 {
+ unsafe { cmath::erfc(self) }
+ }
}
diff --git a/library/std/src/sys/cmath.rs b/library/std/src/sys/cmath.rs
index e3f41f4fdbbb..c9969b4e376e 100644
--- a/library/std/src/sys/cmath.rs
+++ b/library/std/src/sys/cmath.rs
@@ -28,6 +28,10 @@ unsafe extern "C" {
pub fn lgamma_r(n: f64, s: &mut i32) -> f64;
#[cfg(not(target_os = "aix"))]
pub fn lgammaf_r(n: f32, s: &mut i32) -> f32;
+ pub fn erf(n: f64) -> f64;
+ pub fn erff(n: f32) -> f32;
+ pub fn erfc(n: f64) -> f64;
+ pub fn erfcf(n: f32) -> f32;
pub fn acosf128(n: f128) -> f128;
pub fn asinf128(n: f128) -> f128;
@@ -43,6 +47,8 @@ unsafe extern "C" {
pub fn tanhf128(n: f128) -> f128;
pub fn tgammaf128(n: f128) -> f128;
pub fn lgammaf128_r(n: f128, s: &mut i32) -> f128;
+ pub fn erff128(n: f128) -> f128;
+ pub fn erfcf128(n: f128) -> f128;
cfg_if::cfg_if! {
if #[cfg(not(all(target_os = "windows", target_env = "msvc", target_arch = "x86")))] {
From 00683a05c2c660e38c835803bca63903fcb48d10 Mon Sep 17 00:00:00 2001
From: MarcoIeni <11428655+MarcoIeni@users.noreply.github.com>
Date: Fri, 14 Feb 2025 11:10:01 +0100
Subject: [PATCH 20/59] CI: split i686-mingw job to three free runners
---
src/bootstrap/mk/Makefile.in | 18 ++++++++++++------
src/ci/github-actions/jobs.yml | 24 +++++++++++++++++++++---
2 files changed, 33 insertions(+), 9 deletions(-)
diff --git a/src/bootstrap/mk/Makefile.in b/src/bootstrap/mk/Makefile.in
index 7e6a39a236e0..88aa70d4f2f8 100644
--- a/src/bootstrap/mk/Makefile.in
+++ b/src/bootstrap/mk/Makefile.in
@@ -99,16 +99,18 @@ prepare:
# Set of tests that represent around half of the time of the test suite.
# Used to split tests across multiple CI runners.
-STAGE_2_TEST_SET1 := test --stage 2 --skip=compiler --skip=src
-STAGE_2_TEST_SET2 := test --stage 2 --skip=tests --skip=coverage-map --skip=coverage-run --skip=library --skip=tidyselftest
+SKIP_COMPILER := --skip=compiler
+SKIP_SRC := --skip=src
+TEST_SET1 := $(SKIP_COMPILER) $(SKIP_SRC)
+TEST_SET2 := --skip=tests --skip=coverage-map --skip=coverage-run --skip=library --skip=tidyselftest
## MSVC native builders
# this intentionally doesn't use `$(BOOTSTRAP)` so we can test the shebang on Windows
ci-msvc-py:
- $(Q)$(CFG_SRC_DIR)/x.py $(STAGE_2_TEST_SET1)
+ $(Q)$(CFG_SRC_DIR)/x.py test --stage 2 $(TEST_SET1)
ci-msvc-ps1:
- $(Q)$(CFG_SRC_DIR)/x.ps1 $(STAGE_2_TEST_SET2)
+ $(Q)$(CFG_SRC_DIR)/x.ps1 test --stage 2 $(TEST_SET2)
ci-msvc: ci-msvc-py ci-msvc-ps1
## MingW native builders
@@ -116,10 +118,14 @@ ci-msvc: ci-msvc-py ci-msvc-ps1
# Set of tests that should represent half of the time of the test suite.
# Used to split tests across multiple CI runners.
# Test both x and bootstrap entrypoints.
+ci-mingw-x-1:
+ $(Q)$(CFG_SRC_DIR)/x test --stage 2 $(SKIP_COMPILER) $(TEST_SET2)
+ci-mingw-x-2:
+ $(Q)$(CFG_SRC_DIR)/x test --stage 2 $(SKIP_SRC) $(TEST_SET2)
ci-mingw-x:
- $(Q)$(CFG_SRC_DIR)/x $(STAGE_2_TEST_SET1)
+ $(Q)$(CFG_SRC_DIR)/x test --stage 2 $(TEST_SET1)
ci-mingw-bootstrap:
- $(Q)$(BOOTSTRAP) $(STAGE_2_TEST_SET2)
+ $(Q)$(BOOTSTRAP) test --stage 2 $(TEST_SET2)
ci-mingw: ci-mingw-x ci-mingw-bootstrap
.PHONY: dist
diff --git a/src/ci/github-actions/jobs.yml b/src/ci/github-actions/jobs.yml
index 729cc70cb8e4..cae05e1f8ae1 100644
--- a/src/ci/github-actions/jobs.yml
+++ b/src/ci/github-actions/jobs.yml
@@ -456,6 +456,7 @@ auto:
# Windows Builders #
######################
+ # x86_64-msvc is split into two jobs to run tests in parallel.
- name: x86_64-msvc-1
env:
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-sanitizers --enable-profiler
@@ -527,13 +528,30 @@ auto:
# came from the mingw-w64 SourceForge download site. Unfortunately
# SourceForge is notoriously flaky, so we mirror it on our own infrastructure.
- - name: i686-mingw
+ # i686-mingw is split into three jobs to run tests in parallel.
+ - name: i686-mingw-1
env:
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
- SCRIPT: make ci-mingw
+ SCRIPT: make ci-mingw-x-1
# There is no dist-i686-mingw-alt, so there is no prebuilt LLVM with assertions
NO_DOWNLOAD_CI_LLVM: 1
- <<: *job-windows-25-8c
+ <<: *job-windows-25
+
+ - name: i686-mingw-2
+ env:
+ RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
+ SCRIPT: make ci-mingw-x-2
+ # There is no dist-i686-mingw-alt, so there is no prebuilt LLVM with assertions
+ NO_DOWNLOAD_CI_LLVM: 1
+ <<: *job-windows-25
+
+ - name: i686-mingw-3
+ env:
+ RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
+ SCRIPT: make ci-mingw-bootstrap
+ # There is no dist-i686-mingw-alt, so there is no prebuilt LLVM with assertions
+ NO_DOWNLOAD_CI_LLVM: 1
+ <<: *job-windows-25
# x86_64-mingw is split into two jobs to run tests in parallel.
- name: x86_64-mingw-1
From aa9cbd7c3cef7171a6a9e9dccb296e3c1f5d9313 Mon Sep 17 00:00:00 2001
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Date: Fri, 14 Feb 2025 10:17:47 +0000
Subject: [PATCH 21/59] Rustup to rustc 1.86.0-nightly (a567209da 2025-02-13)
---
rust-toolchain | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rust-toolchain b/rust-toolchain
index 4471fdee2aa6..c43450af694d 100644
--- a/rust-toolchain
+++ b/rust-toolchain
@@ -1,4 +1,4 @@
[toolchain]
-channel = "nightly-2025-02-12"
+channel = "nightly-2025-02-14"
components = ["rust-src", "rustc-dev", "llvm-tools"]
profile = "minimal"
From de27d8593dad84880cc92b7d53f701e8d8e92f02 Mon Sep 17 00:00:00 2001
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Date: Fri, 14 Feb 2025 10:57:29 +0000
Subject: [PATCH 22/59] Update to newer Ubuntu in CI for distributing
precompiled artifacts
GHA is going to remove support for ubuntu-20.04 in a couple of months
---
.github/workflows/main.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index a8333df77e6e..61a4c1270c99 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -188,8 +188,8 @@ jobs:
fail-fast: false
matrix:
include:
- # FIXME update at some point in the future once most distros use a newer glibc
- - os: ubuntu-20.04
+ # Intentionally using an older ubuntu version to lower the glibc requirements of the distributed cg_clif
+ - os: ubuntu-22.04
env:
TARGET_TRIPLE: x86_64-unknown-linux-gnu
- os: macos-latest
From 00964aa401214ceab23d232b7d819b9b3286343f Mon Sep 17 00:00:00 2001
From: Kornel
Date: Tue, 11 Feb 2025 11:04:43 +0000
Subject: [PATCH 23/59] Add safe new to NotAllOnes
---
library/core/src/num/niche_types.rs | 10 ++++++++++
library/std/src/os/fd/owned.rs | 12 ++++--------
library/std/src/os/solid/io.rs | 14 ++++----------
library/std/src/os/windows/io/socket.rs | 10 ++++------
library/std/src/sys/pal/solid/fs.rs | 7 ++-----
5 files changed, 24 insertions(+), 29 deletions(-)
diff --git a/library/core/src/num/niche_types.rs b/library/core/src/num/niche_types.rs
index 096713c318f8..47ff4254e533 100644
--- a/library/core/src/num/niche_types.rs
+++ b/library/core/src/num/niche_types.rs
@@ -32,6 +32,16 @@ macro_rules! define_valid_range_type {
};
impl $name {
+ #[inline]
+ pub const fn new(val: $int) -> Option {
+ if (val as $uint) >= ($low as $uint) && (val as $uint) <= ($high as $uint) {
+ // SAFETY: just checked the inclusive range
+ Some(unsafe { $name(val) })
+ } else {
+ None
+ }
+ }
+
/// Constructs an instance of this type from the underlying integer
/// primitive without checking whether its zero.
///
diff --git a/library/std/src/os/fd/owned.rs b/library/std/src/os/fd/owned.rs
index 1e814eca3c1a..5cec11ecccf1 100644
--- a/library/std/src/os/fd/owned.rs
+++ b/library/std/src/os/fd/owned.rs
@@ -67,13 +67,11 @@ impl BorrowedFd<'_> {
/// The resource pointed to by `fd` must remain open for the duration of
/// the returned `BorrowedFd`, and it must not have the value `-1`.
#[inline]
+ #[track_caller]
#[rustc_const_stable(feature = "io_safety", since = "1.63.0")]
#[stable(feature = "io_safety", since = "1.63.0")]
pub const unsafe fn borrow_raw(fd: RawFd) -> Self {
- assert!(fd != u32::MAX as RawFd);
- // SAFETY: we just asserted that the value is in the valid range and isn't `-1` (the only value bigger than `0xFF_FF_FF_FE` unsigned)
- let fd = unsafe { ValidRawFd::new_unchecked(fd) };
- Self { fd, _phantom: PhantomData }
+ Self { fd: ValidRawFd::new(fd).expect("fd != -1"), _phantom: PhantomData }
}
}
@@ -154,11 +152,9 @@ impl FromRawFd for OwnedFd {
///
/// [io-safety]: io#io-safety
#[inline]
+ #[track_caller]
unsafe fn from_raw_fd(fd: RawFd) -> Self {
- assert_ne!(fd, u32::MAX as RawFd);
- // SAFETY: we just asserted that the value is in the valid range and isn't `-1` (the only value bigger than `0xFF_FF_FF_FE` unsigned)
- let fd = unsafe { ValidRawFd::new_unchecked(fd) };
- Self { fd }
+ Self { fd: ValidRawFd::new(fd).expect("fd != -1") }
}
}
diff --git a/library/std/src/os/solid/io.rs b/library/std/src/os/solid/io.rs
index ca58a900c445..c23d842b238b 100644
--- a/library/std/src/os/solid/io.rs
+++ b/library/std/src/os/solid/io.rs
@@ -101,12 +101,9 @@ impl BorrowedFd<'_> {
/// the returned `BorrowedFd`, and it must not have the value
/// `SOLID_NET_INVALID_FD`.
#[inline]
+ #[track_caller]
pub const unsafe fn borrow_raw(fd: RawFd) -> Self {
- assert!(fd != -1 as RawFd);
- // SAFETY: we just asserted that the value is in the valid range and
- // isn't `-1` (the only value bigger than `0xFF_FF_FF_FE` unsigned)
- let fd = unsafe { ValidRawFd::new_unchecked(fd) };
- Self { fd, _phantom: PhantomData }
+ Self { fd: ValidRawFd::new(fd).expect("fd != -1"), _phantom: PhantomData }
}
}
@@ -156,12 +153,9 @@ impl FromRawFd for OwnedFd {
/// The resource pointed to by `fd` must be open and suitable for assuming
/// ownership. The resource must not require any cleanup other than `close`.
#[inline]
+ #[track_caller]
unsafe fn from_raw_fd(fd: RawFd) -> Self {
- assert_ne!(fd, -1 as RawFd);
- // SAFETY: we just asserted that the value is in the valid range and
- // isn't `-1` (the only value bigger than `0xFF_FF_FF_FE` unsigned)
- let fd = unsafe { ValidRawFd::new_unchecked(fd) };
- Self { fd }
+ Self { fd: ValidRawFd::new(fd).expect("fd != -1") }
}
}
diff --git a/library/std/src/os/windows/io/socket.rs b/library/std/src/os/windows/io/socket.rs
index 6e13a8b502a7..2bc6ce222ae5 100644
--- a/library/std/src/os/windows/io/socket.rs
+++ b/library/std/src/os/windows/io/socket.rs
@@ -58,12 +58,11 @@ impl BorrowedSocket<'_> {
/// the returned `BorrowedSocket`, and it must not have the value
/// `INVALID_SOCKET`.
#[inline]
+ #[track_caller]
#[rustc_const_stable(feature = "io_safety", since = "1.63.0")]
#[stable(feature = "io_safety", since = "1.63.0")]
pub const unsafe fn borrow_raw(socket: RawSocket) -> Self {
- assert!(socket != sys::c::INVALID_SOCKET as RawSocket);
- let socket = unsafe { ValidRawSocket::new_unchecked(socket) };
- Self { socket, _phantom: PhantomData }
+ Self { socket: ValidRawSocket::new(socket).expect("socket != -1"), _phantom: PhantomData }
}
}
@@ -185,10 +184,9 @@ impl IntoRawSocket for OwnedSocket {
#[stable(feature = "io_safety", since = "1.63.0")]
impl FromRawSocket for OwnedSocket {
#[inline]
+ #[track_caller]
unsafe fn from_raw_socket(socket: RawSocket) -> Self {
- debug_assert_ne!(socket, sys::c::INVALID_SOCKET as RawSocket);
- let socket = unsafe { ValidRawSocket::new_unchecked(socket) };
- Self { socket }
+ Self { socket: ValidRawSocket::new(socket).expect("socket != -1") }
}
}
diff --git a/library/std/src/sys/pal/solid/fs.rs b/library/std/src/sys/pal/solid/fs.rs
index fa2e470d6b60..cc424141ea80 100644
--- a/library/std/src/sys/pal/solid/fs.rs
+++ b/library/std/src/sys/pal/solid/fs.rs
@@ -22,12 +22,9 @@ struct FileDesc {
impl FileDesc {
#[inline]
+ #[track_caller]
fn new(fd: c_int) -> FileDesc {
- assert_ne!(fd, -1i32);
- // Safety: we just asserted that the value is in the valid range and
- // isn't `-1` (the only value bigger than `0xFF_FF_FF_FE` unsigned)
- let fd = unsafe { CIntNotMinusOne::new_unchecked(fd) };
- FileDesc { fd }
+ FileDesc { fd: CIntNotMinusOne::new(fd).expect("fd != -1") }
}
#[inline]
From 1284765cfffefddbb55b3ed11f3c8be4ea04122a Mon Sep 17 00:00:00 2001
From: Zalathar
Date: Wed, 5 Feb 2025 20:53:29 +1100
Subject: [PATCH 24/59] Rename `PatCtxt::lower_lit` to `lower_pat_expr`
This matches the HIR changes in #134228, which introduced `PatExpr` to hold the
subset of "expressions" that can appear in a pattern.
---
compiler/rustc_mir_build/src/thir/pattern/mod.rs | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/compiler/rustc_mir_build/src/thir/pattern/mod.rs b/compiler/rustc_mir_build/src/thir/pattern/mod.rs
index 83fef7b0de6f..7e7fadfd18dc 100644
--- a/compiler/rustc_mir_build/src/thir/pattern/mod.rs
+++ b/compiler/rustc_mir_build/src/thir/pattern/mod.rs
@@ -189,7 +189,7 @@ impl<'a, 'tcx> PatCtxt<'a, 'tcx> {
// Lower the endpoint into a temporary `PatKind` that will then be
// deconstructed to obtain the constant value and other data.
- let mut kind: PatKind<'tcx> = self.lower_lit(expr);
+ let mut kind: PatKind<'tcx> = self.lower_pat_expr(expr);
// Unpeel any ascription or inline-const wrapper nodes.
loop {
@@ -353,7 +353,7 @@ impl<'a, 'tcx> PatCtxt<'a, 'tcx> {
hir::PatKind::Never => PatKind::Never,
- hir::PatKind::Expr(value) => self.lower_lit(value),
+ hir::PatKind::Expr(value) => self.lower_pat_expr(value),
hir::PatKind::Range(ref lo_expr, ref hi_expr, end) => {
let (lo_expr, hi_expr) = (lo_expr.as_deref(), hi_expr.as_deref());
@@ -708,11 +708,11 @@ impl<'a, 'tcx> PatCtxt<'a, 'tcx> {
PatKind::ExpandedConstant { subpattern, def_id: def_id.to_def_id(), is_inline: true }
}
- /// Converts literals, paths and negation of literals to patterns.
- /// The special case for negation exists to allow things like `-128_i8`
- /// which would overflow if we tried to evaluate `128_i8` and then negate
- /// afterwards.
- fn lower_lit(&mut self, expr: &'tcx hir::PatExpr<'tcx>) -> PatKind<'tcx> {
+ /// Lowers the kinds of "expression" that can appear in a HIR pattern:
+ /// - Paths (e.g. `FOO`, `foo::BAR`, `Option::None`)
+ /// - Inline const blocks (e.g. `const { 1 + 1 }`)
+ /// - Literals, possibly negated (e.g. `-128u8`, `"hello"`)
+ fn lower_pat_expr(&mut self, expr: &'tcx hir::PatExpr<'tcx>) -> PatKind<'tcx> {
let (lit, neg) = match &expr.kind {
hir::PatExprKind::Path(qpath) => {
return self.lower_path(qpath, expr.hir_id, expr.span).kind;
From c3eea531fdf00051b9aeb9a01e4f740d7e111e59 Mon Sep 17 00:00:00 2001
From: Zalathar
Date: Tue, 4 Feb 2025 11:31:58 +1100
Subject: [PATCH 25/59] Clarify control-flow in `lower_path`
---
.../rustc_mir_build/src/thir/pattern/mod.rs | 63 ++++++++++---------
1 file changed, 33 insertions(+), 30 deletions(-)
diff --git a/compiler/rustc_mir_build/src/thir/pattern/mod.rs b/compiler/rustc_mir_build/src/thir/pattern/mod.rs
index 7e7fadfd18dc..e0a427d9e44a 100644
--- a/compiler/rustc_mir_build/src/thir/pattern/mod.rs
+++ b/compiler/rustc_mir_build/src/thir/pattern/mod.rs
@@ -638,51 +638,54 @@ impl<'a, 'tcx> PatCtxt<'a, 'tcx> {
let ty = self.typeck_results.node_type(id);
let res = self.typeck_results.qpath_res(qpath, id);
- let pat_from_kind = |kind| Box::new(Pat { span, ty, kind });
+ let (def_id, user_ty) = match res {
+ Res::Def(DefKind::Const, def_id) => (def_id, None),
+ Res::Def(DefKind::AssocConst, def_id) => {
+ (def_id, self.typeck_results.user_provided_types().get(id))
+ }
- let (def_id, is_associated_const) = match res {
- Res::Def(DefKind::Const, def_id) => (def_id, false),
- Res::Def(DefKind::AssocConst, def_id) => (def_id, true),
-
- _ => return pat_from_kind(self.lower_variant_or_leaf(res, id, span, ty, vec![])),
+ _ => {
+ // The path isn't the name of a constant, so it must actually
+ // be a unit struct or unit variant (e.g. `Option::None`).
+ let kind = self.lower_variant_or_leaf(res, id, span, ty, vec![]);
+ return Box::new(Pat { span, ty, kind });
+ }
};
+ // Lower the named constant to a THIR pattern.
let args = self.typeck_results.node_args(id);
let c = ty::Const::new_unevaluated(self.tcx, ty::UnevaluatedConst { def: def_id, args });
let subpattern = self.const_to_pat(c, ty, id, span);
- let pattern = Box::new(Pat {
- span,
- ty,
- kind: PatKind::ExpandedConstant { subpattern, def_id, is_inline: false },
- });
- if !is_associated_const {
- return pattern;
- }
+ // Wrap the pattern in a marker node to indicate that it is the result
+ // of lowering a named constant. This marker is used for improved
+ // diagnostics in some situations, but has no effect at runtime.
+ let mut pattern = {
+ let kind = PatKind::ExpandedConstant { subpattern, def_id, is_inline: false };
+ Box::new(Pat { span, ty, kind })
+ };
- let user_provided_types = self.typeck_results.user_provided_types();
- if let Some(&user_ty) = user_provided_types.get(id) {
+ // If this is an associated constant with an explicit user-written
+ // type, add an ascription node (e.g. ` as MyTrait>::CONST`).
+ if let Some(&user_ty) = user_ty {
let annotation = CanonicalUserTypeAnnotation {
user_ty: Box::new(user_ty),
span,
inferred_ty: self.typeck_results.node_type(id),
};
- Box::new(Pat {
- span,
- kind: PatKind::AscribeUserType {
- subpattern: pattern,
- ascription: Ascription {
- annotation,
- // Note that use `Contravariant` here. See the
- // `variance` field documentation for details.
- variance: ty::Contravariant,
- },
+ let kind = PatKind::AscribeUserType {
+ subpattern: pattern,
+ ascription: Ascription {
+ annotation,
+ // Note that we use `Contravariant` here. See the
+ // `variance` field documentation for details.
+ variance: ty::Contravariant,
},
- ty,
- })
- } else {
- pattern
+ };
+ pattern = Box::new(Pat { span, kind, ty });
}
+
+ pattern
}
/// Converts inline const patterns.
From 92fc085080d446ef6fd41f7c916179454bd1c43a Mon Sep 17 00:00:00 2001
From: Zalathar
Date: Wed, 5 Feb 2025 21:51:05 +1100
Subject: [PATCH 26/59] More comments for `lower_inline_const`
---
compiler/rustc_mir_build/src/thir/pattern/mod.rs | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/compiler/rustc_mir_build/src/thir/pattern/mod.rs b/compiler/rustc_mir_build/src/thir/pattern/mod.rs
index e0a427d9e44a..22b8bfef09d2 100644
--- a/compiler/rustc_mir_build/src/thir/pattern/mod.rs
+++ b/compiler/rustc_mir_build/src/thir/pattern/mod.rs
@@ -688,7 +688,7 @@ impl<'a, 'tcx> PatCtxt<'a, 'tcx> {
pattern
}
- /// Converts inline const patterns.
+ /// Lowers an inline const block (e.g. `const { 1 + 1 }`) to a pattern.
fn lower_inline_const(
&mut self,
block: &'tcx hir::ConstBlock,
@@ -708,6 +708,9 @@ impl<'a, 'tcx> PatCtxt<'a, 'tcx> {
let ct = ty::UnevaluatedConst { def: def_id.to_def_id(), args };
let subpattern = self.const_to_pat(ty::Const::new_unevaluated(self.tcx, ct), ty, id, span);
+
+ // Wrap the pattern in a marker node to indicate that it is the result
+ // of lowering an inline const block.
PatKind::ExpandedConstant { subpattern, def_id: def_id.to_def_id(), is_inline: true }
}
From e4636e2613701d84b6bb27a9664df5af07c55ed7 Mon Sep 17 00:00:00 2001
From: Yotam Ofek
Date: Mon, 10 Feb 2025 16:15:15 +0000
Subject: [PATCH 27/59] librustdoc: create `MaybeDisplay` helper for `Option` types
---
src/librustdoc/clean/cfg.rs | 2 +-
src/librustdoc/{joined.rs => display.rs} | 18 ++++++++++++++++++
src/librustdoc/html/format.rs | 2 +-
src/librustdoc/html/render/print_item.rs | 2 +-
src/librustdoc/lib.rs | 2 +-
5 files changed, 22 insertions(+), 4 deletions(-)
rename src/librustdoc/{joined.rs => display.rs} (67%)
diff --git a/src/librustdoc/clean/cfg.rs b/src/librustdoc/clean/cfg.rs
index b576f28176e5..bec7fbe8f52b 100644
--- a/src/librustdoc/clean/cfg.rs
+++ b/src/librustdoc/clean/cfg.rs
@@ -13,8 +13,8 @@ use rustc_session::parse::ParseSess;
use rustc_span::Span;
use rustc_span::symbol::{Symbol, sym};
+use crate::display::Joined as _;
use crate::html::escape::Escape;
-use crate::joined::Joined as _;
#[cfg(test)]
mod tests;
diff --git a/src/librustdoc/joined.rs b/src/librustdoc/display.rs
similarity index 67%
rename from src/librustdoc/joined.rs
rename to src/librustdoc/display.rs
index f369c6cf2371..ee8dde013ee9 100644
--- a/src/librustdoc/joined.rs
+++ b/src/librustdoc/display.rs
@@ -1,3 +1,5 @@
+//! Various utilities for working with [`fmt::Display`] implementations.
+
use std::fmt::{self, Display, Formatter};
pub(crate) trait Joined: IntoIterator {
@@ -27,3 +29,19 @@ where
Ok(())
}
}
+
+pub(crate) trait MaybeDisplay {
+ /// For a given `Option`, returns a `Display` implementation that will display `t` if `Some(t)`, or nothing if `None`.
+ fn maybe_display(self) -> impl Display;
+}
+
+impl MaybeDisplay for Option {
+ fn maybe_display(self) -> impl Display {
+ fmt::from_fn(move |f| {
+ if let Some(t) = self.as_ref() {
+ t.fmt(f)?;
+ }
+ Ok(())
+ })
+ }
+}
diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs
index 086a85aa616f..d99b40c0a38d 100644
--- a/src/librustdoc/html/format.rs
+++ b/src/librustdoc/html/format.rs
@@ -30,11 +30,11 @@ use super::url_parts_builder::{UrlPartsBuilder, estimate_item_path_byte_length};
use crate::clean::types::ExternalLocation;
use crate::clean::utils::find_nearest_parent_module;
use crate::clean::{self, ExternalCrate, PrimitiveType};
+use crate::display::Joined as _;
use crate::formats::cache::Cache;
use crate::formats::item_type::ItemType;
use crate::html::escape::{Escape, EscapeBodyText};
use crate::html::render::Context;
-use crate::joined::Joined as _;
use crate::passes::collect_intra_doc_links::UrlFragment;
pub(crate) fn write_str(s: &mut String, f: fmt::Arguments<'_>) {
diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs
index 9c1afef75ef3..46113ae2af90 100644
--- a/src/librustdoc/html/render/print_item.rs
+++ b/src/librustdoc/html/render/print_item.rs
@@ -27,6 +27,7 @@ use super::{
};
use crate::clean;
use crate::config::ModuleSorting;
+use crate::display::Joined as _;
use crate::formats::Impl;
use crate::formats::item_type::ItemType;
use crate::html::escape::{Escape, EscapeBodyTextWithWbr};
@@ -37,7 +38,6 @@ use crate::html::format::{
use crate::html::markdown::{HeadingOffset, MarkdownSummaryLine};
use crate::html::render::{document_full, document_item_info};
use crate::html::url_parts_builder::UrlPartsBuilder;
-use crate::joined::Joined as _;
/// Generates a Rinja template struct for rendering items with common methods.
///
diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs
index 4e4cff40686e..e4acbcf2c626 100644
--- a/src/librustdoc/lib.rs
+++ b/src/librustdoc/lib.rs
@@ -106,6 +106,7 @@ macro_rules! map {
mod clean;
mod config;
mod core;
+mod display;
mod docfs;
mod doctest;
mod error;
@@ -114,7 +115,6 @@ mod fold;
mod formats;
// used by the error-index generator, so it needs to be public
pub mod html;
-mod joined;
mod json;
pub(crate) mod lint;
mod markdown;
From 9436b4a75b77ba547b9eeb3060d7c71b1c9bb4d6 Mon Sep 17 00:00:00 2001
From: Yotam Ofek
Date: Mon, 10 Feb 2025 16:20:26 +0000
Subject: [PATCH 28/59] librustdoc: make `bounds` formatting lazy
---
src/librustdoc/html/render/print_item.rs | 45 ++++++++++++------------
1 file changed, 22 insertions(+), 23 deletions(-)
diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs
index 46113ae2af90..3932a6c72256 100644
--- a/src/librustdoc/html/render/print_item.rs
+++ b/src/librustdoc/html/render/print_item.rs
@@ -1,6 +1,6 @@
use std::cmp::Ordering;
use std::fmt;
-use std::fmt::{Display, Write};
+use std::fmt::Display;
use itertools::Itertools;
use rinja::Template;
@@ -27,7 +27,7 @@ use super::{
};
use crate::clean;
use crate::config::ModuleSorting;
-use crate::display::Joined as _;
+use crate::display::{Joined as _, MaybeDisplay as _};
use crate::formats::Impl;
use crate::formats::item_type::ItemType;
use crate::html::escape::{Escape, EscapeBodyTextWithWbr};
@@ -2123,27 +2123,26 @@ pub(super) fn item_path(ty: ItemType, name: &str) -> String {
}
}
-fn bounds(t_bounds: &[clean::GenericBound], trait_alias: bool, cx: &Context<'_>) -> String {
- let mut bounds = String::new();
- if t_bounds.is_empty() {
- return bounds;
- }
- let has_lots_of_bounds = t_bounds.len() > 2;
- let inter_str = if has_lots_of_bounds { "\n + " } else { " + " };
- if !trait_alias {
- if has_lots_of_bounds {
- bounds.push_str(":\n ");
- } else {
- bounds.push_str(": ");
- }
- }
- write!(
- bounds,
- "{}",
- fmt::from_fn(|f| t_bounds.iter().map(|p| p.print(cx)).joined(inter_str, f))
- )
- .unwrap();
- bounds
+fn bounds<'a, 'tcx>(
+ bounds: &'a [clean::GenericBound],
+ trait_alias: bool,
+ cx: &'a Context<'tcx>,
+) -> impl Display + 'a + Captures<'tcx> {
+ (!bounds.is_empty())
+ .then_some(fmt::from_fn(move |f| {
+ let has_lots_of_bounds = bounds.len() > 2;
+ let inter_str = if has_lots_of_bounds { "\n + " } else { " + " };
+ if !trait_alias {
+ if has_lots_of_bounds {
+ f.write_str(":\n ")?;
+ } else {
+ f.write_str(": ")?;
+ }
+ }
+
+ bounds.iter().map(|p| p.print(cx)).joined(inter_str, f)
+ }))
+ .maybe_display()
}
fn wrap_item(w: &mut W, f: F)
From fb33cd20d33fc89627fc488ca799f73bd9e92071 Mon Sep 17 00:00:00 2001
From: Yotam Ofek
Date: Mon, 10 Feb 2025 16:26:13 +0000
Subject: [PATCH 29/59] librustdoc: make `assoc_href_attr` formatting lazy
---
src/librustdoc/html/render/mod.rs | 44 +++++++++++++++++++++++--------
1 file changed, 33 insertions(+), 11 deletions(-)
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs
index 2f52a38c5817..aebe5197009d 100644
--- a/src/librustdoc/html/render/mod.rs
+++ b/src/librustdoc/html/render/mod.rs
@@ -63,6 +63,7 @@ pub(crate) use self::context::*;
pub(crate) use self::span_map::{LinkFromSrc, collect_spans_and_sources};
pub(crate) use self::write_shared::*;
use crate::clean::{self, ItemId, RenderedLink};
+use crate::display::MaybeDisplay as _;
use crate::error::Error;
use crate::formats::Impl;
use crate::formats::cache::Cache;
@@ -569,7 +570,8 @@ fn document_short<'a, 'cx: 'a>(
MarkdownSummaryLine(&s, &item.links(cx)).into_string_with_has_more_content();
if has_more_content {
- let link = format!(" Read more", assoc_href_attr(item, link, cx));
+ let link =
+ format!(" Read more", assoc_href_attr(item, link, cx).maybe_display());
if let Some(idx) = summary_html.rfind("
") {
summary_html.insert_str(idx, &link);
@@ -788,13 +790,23 @@ pub(crate) fn render_impls(
}
/// Build a (possibly empty) `href` attribute (a key-value pair) for the given associated item.
-fn assoc_href_attr(it: &clean::Item, link: AssocItemLink<'_>, cx: &Context<'_>) -> String {
+fn assoc_href_attr<'a, 'tcx>(
+ it: &clean::Item,
+ link: AssocItemLink<'a>,
+ cx: &Context<'tcx>,
+) -> Option> {
let name = it.name.unwrap();
let item_type = it.type_();
+ enum Href<'a> {
+ AnchorId(&'a str),
+ Anchor(ItemType),
+ Url(String, ItemType),
+ }
+
let href = match link {
- AssocItemLink::Anchor(Some(ref id)) => Some(format!("#{id}")),
- AssocItemLink::Anchor(None) => Some(format!("#{item_type}.{name}")),
+ AssocItemLink::Anchor(Some(ref id)) => Href::AnchorId(id),
+ AssocItemLink::Anchor(None) => Href::Anchor(item_type),
AssocItemLink::GotoSource(did, provided_methods) => {
// We're creating a link from the implementation of an associated item to its
// declaration in the trait declaration.
@@ -814,7 +826,7 @@ fn assoc_href_attr(it: &clean::Item, link: AssocItemLink<'_>, cx: &Context<'_>)
};
match href(did.expect_def_id(), cx) {
- Ok((url, ..)) => Some(format!("{url}#{item_type}.{name}")),
+ Ok((url, ..)) => Href::Url(url, item_type),
// The link is broken since it points to an external crate that wasn't documented.
// Do not create any link in such case. This is better than falling back to a
// dummy anchor like `#{item_type}.{name}` representing the `id` of *this* impl item
@@ -826,15 +838,25 @@ fn assoc_href_attr(it: &clean::Item, link: AssocItemLink<'_>, cx: &Context<'_>)
// those two items are distinct!
// In this scenario, the actual `id` of this impl item would be
// `#{item_type}.{name}-{n}` for some number `n` (a disambiguator).
- Err(HrefError::DocumentationNotBuilt) => None,
- Err(_) => Some(format!("#{item_type}.{name}")),
+ Err(HrefError::DocumentationNotBuilt) => return None,
+ Err(_) => Href::Anchor(item_type),
}
}
};
+ let href = fmt::from_fn(move |f| match &href {
+ Href::AnchorId(id) => write!(f, "#{id}"),
+ Href::Url(url, item_type) => {
+ write!(f, "{url}#{item_type}.{name}")
+ }
+ Href::Anchor(item_type) => {
+ write!(f, "#{item_type}.{name}")
+ }
+ });
+
// If there is no `href` for the reason explained above, simply do not render it which is valid:
// https://html.spec.whatwg.org/multipage/links.html#links-created-by-a-and-area-elements
- href.map(|href| format!(" href=\"{href}\"")).unwrap_or_default()
+ Some(fmt::from_fn(move |f| write!(f, " href=\"{href}\"")))
}
#[derive(Debug)]
@@ -865,7 +887,7 @@ fn assoc_const(
"{indent}{vis}const {name}{generics}: {ty}",
indent = " ".repeat(indent),
vis = visibility_print_with_space(it, cx),
- href = assoc_href_attr(it, link, cx),
+ href = assoc_href_attr(it, link, cx).maybe_display(),
name = it.name.as_ref().unwrap(),
generics = generics.print(cx),
ty = ty.print(cx),
@@ -905,7 +927,7 @@ fn assoc_type(
"{indent}{vis}type {name}{generics}",
indent = " ".repeat(indent),
vis = visibility_print_with_space(it, cx),
- href = assoc_href_attr(it, link, cx),
+ href = assoc_href_attr(it, link, cx).maybe_display(),
name = it.name.as_ref().unwrap(),
generics = generics.print(cx),
),
@@ -948,7 +970,7 @@ fn assoc_method(
let asyncness = header.asyncness.print_with_space();
let safety = header.safety.print_with_space();
let abi = print_abi_with_space(header.abi).to_string();
- let href = assoc_href_attr(meth, link, cx);
+ let href = assoc_href_attr(meth, link, cx).maybe_display();
// NOTE: `{:#}` does not print HTML formatting, `{}` does. So `g.print` can't be reused between the length calculation and `write!`.
let generics_len = format!("{:#}", g.print(cx)).len();
From cf097d5d7f9354080aa17ce45dd4da3d4a8c34c9 Mon Sep 17 00:00:00 2001
From: Yotam Ofek
Date: Mon, 10 Feb 2025 17:28:31 +0000
Subject: [PATCH 30/59] librustdoc: make `notable_traits_button` formatting
lazy
---
src/librustdoc/html/render/mod.rs | 25 +++++++++++++-----------
src/librustdoc/html/render/print_item.rs | 3 +--
2 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs
index aebe5197009d..c8db32ebcf93 100644
--- a/src/librustdoc/html/render/mod.rs
+++ b/src/librustdoc/html/render/mod.rs
@@ -984,7 +984,7 @@ fn assoc_method(
+ name.as_str().len()
+ generics_len;
- let notable_traits = notable_traits_button(&d.output, cx);
+ let notable_traits = notable_traits_button(&d.output, cx).maybe_display();
let (indent, indent_str, end_newline) = if parent == ItemType::Trait {
header_len += 4;
@@ -1012,7 +1012,6 @@ fn assoc_method(
name = name,
generics = g.print(cx),
decl = d.full_print(header_len, indent, cx),
- notable_traits = notable_traits.unwrap_or_default(),
where_clause = print_where_clause(g, cx, indent, end_newline),
),
);
@@ -1460,7 +1459,10 @@ fn should_render_item(item: &clean::Item, deref_mut_: bool, tcx: TyCtxt<'_>) ->
}
}
-pub(crate) fn notable_traits_button(ty: &clean::Type, cx: &Context<'_>) -> Option {
+pub(crate) fn notable_traits_button<'a, 'tcx>(
+ ty: &'a clean::Type,
+ cx: &'a Context<'tcx>,
+) -> Option> {
let mut has_notable_trait = false;
if ty.is_unit() {
@@ -1502,15 +1504,16 @@ pub(crate) fn notable_traits_button(ty: &clean::Type, cx: &Context<'_>) -> Optio
}
}
- if has_notable_trait {
+ has_notable_trait.then(|| {
cx.types_with_notable_traits.borrow_mut().insert(ty.clone());
- Some(format!(
- " ⓘ",
- ty = Escape(&format!("{:#}", ty.print(cx))),
- ))
- } else {
- None
- }
+ fmt::from_fn(|f| {
+ write!(
+ f,
+ " ⓘ",
+ ty = Escape(&format!("{:#}", ty.print(cx))),
+ )
+ })
+ })
}
fn notable_traits_decl(ty: &clean::Type, cx: &Context<'_>) -> (String, String) {
diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs
index 3932a6c72256..924d8bde96c0 100644
--- a/src/librustdoc/html/render/print_item.rs
+++ b/src/librustdoc/html/render/print_item.rs
@@ -619,7 +619,7 @@ fn item_function(w: &mut String, cx: &Context<'_>, it: &clean::Item, f: &clean::
+ name.as_str().len()
+ generics_len;
- let notable_traits = notable_traits_button(&f.decl.output, cx);
+ let notable_traits = notable_traits_button(&f.decl.output, cx).maybe_display();
wrap_item(w, |w| {
w.reserve(header_len);
@@ -638,7 +638,6 @@ fn item_function(w: &mut String, cx: &Context<'_>, it: &clean::Item, f: &clean::
generics = f.generics.print(cx),
where_clause = print_where_clause(&f.generics, cx, 0, Ending::Newline),
decl = f.decl.full_print(header_len, 0, cx),
- notable_traits = notable_traits.unwrap_or_default(),
),
);
});
From bc061858d23cd970395023626ea9e5c30675bd7a Mon Sep 17 00:00:00 2001
From: Yotam Ofek
Date: Mon, 10 Feb 2025 17:32:39 +0000
Subject: [PATCH 31/59] librustdoc: make `item_path` formatting lazy
---
src/librustdoc/html/render/context.rs | 19 ++++++++++++-------
src/librustdoc/html/render/print_item.rs | 10 +++++-----
2 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/src/librustdoc/html/render/context.rs b/src/librustdoc/html/render/context.rs
index b774e60c62d3..dab9ba79761a 100644
--- a/src/librustdoc/html/render/context.rs
+++ b/src/librustdoc/html/render/context.rs
@@ -1,8 +1,9 @@
use std::cell::RefCell;
use std::collections::BTreeMap;
+use std::fmt::{self, Write as _};
+use std::io;
use std::path::{Path, PathBuf};
use std::sync::mpsc::{Receiver, channel};
-use std::{fmt, io};
use rinja::Template;
use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexMap, FxIndexSet};
@@ -270,7 +271,7 @@ impl<'tcx> Context<'tcx> {
path.push_str(name.as_str());
path.push('/');
}
- path.push_str(&item_path(ty, names.last().unwrap().as_str()));
+ let _ = write!(path, "{}", item_path(ty, names.last().unwrap().as_str()));
match self.shared.redirections {
Some(ref redirections) => {
let mut current_path = String::new();
@@ -278,8 +279,12 @@ impl<'tcx> Context<'tcx> {
current_path.push_str(name.as_str());
current_path.push('/');
}
- current_path.push_str(&item_path(ty, names.last().unwrap().as_str()));
- redirections.borrow_mut().insert(current_path, path);
+ let _ = write!(
+ current_path,
+ "{}",
+ item_path(ty, names.last().unwrap().as_str())
+ );
+ redirections.borrow_mut().insert(current_path, path.to_string());
}
None => {
return layout::redirect(&format!(
@@ -854,9 +859,9 @@ impl<'tcx> FormatRenderer<'tcx> for Context<'tcx> {
if !buf.is_empty() {
let name = item.name.as_ref().unwrap();
let item_type = item.type_();
- let file_name = &item_path(item_type, name.as_str());
+ let file_name = item_path(item_type, name.as_str()).to_string();
self.shared.ensure_dir(&self.dst)?;
- let joint_dst = self.dst.join(file_name);
+ let joint_dst = self.dst.join(&file_name);
self.shared.fs.write(joint_dst, buf)?;
if !self.info.render_redirect_pages {
@@ -873,7 +878,7 @@ impl<'tcx> FormatRenderer<'tcx> for Context<'tcx> {
format!("{crate_name}/{file_name}"),
);
} else {
- let v = layout::redirect(file_name);
+ let v = layout::redirect(&file_name);
let redir_dst = self.dst.join(redir_name);
self.shared.fs.write(redir_dst, v)?;
}
diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs
index 924d8bde96c0..d2d7415261b9 100644
--- a/src/librustdoc/html/render/print_item.rs
+++ b/src/librustdoc/html/render/print_item.rs
@@ -2115,11 +2115,11 @@ pub(super) fn full_path(cx: &Context<'_>, item: &clean::Item) -> String {
s
}
-pub(super) fn item_path(ty: ItemType, name: &str) -> String {
- match ty {
- ItemType::Module => format!("{}index.html", ensure_trailing_slash(name)),
- _ => format!("{ty}.{name}.html"),
- }
+pub(super) fn item_path(ty: ItemType, name: &str) -> impl Display + '_ {
+ fmt::from_fn(move |f| match ty {
+ ItemType::Module => write!(f, "{}index.html", ensure_trailing_slash(name)),
+ _ => write!(f, "{ty}.{name}.html"),
+ })
}
fn bounds<'a, 'tcx>(
From 5c5763a6cfdb01016c8a0853f859d40bf50ff49c Mon Sep 17 00:00:00 2001
From: Yotam Ofek
Date: Mon, 10 Feb 2025 17:37:33 +0000
Subject: [PATCH 32/59] librustdoc: lazily format list of aliases in
`render_impl_summary`
---
src/librustdoc/html/render/mod.rs | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs
index c8db32ebcf93..6896925753a2 100644
--- a/src/librustdoc/html/render/mod.rs
+++ b/src/librustdoc/html/render/mod.rs
@@ -63,7 +63,7 @@ pub(crate) use self::context::*;
pub(crate) use self::span_map::{LinkFromSrc, collect_spans_and_sources};
pub(crate) use self::write_shared::*;
use crate::clean::{self, ItemId, RenderedLink};
-use crate::display::MaybeDisplay as _;
+use crate::display::{Joined as _, MaybeDisplay as _};
use crate::error::Error;
use crate::formats::Impl;
use crate::formats::cache::Cache;
@@ -2142,11 +2142,11 @@ pub(crate) fn render_impl_summary(
) {
let inner_impl = i.inner_impl();
let id = cx.derive_id(get_id_for_impl(cx.tcx(), i.impl_item.item_id));
- let aliases = if aliases.is_empty() {
- String::new()
- } else {
- format!(" data-aliases=\"{}\"", aliases.join(","))
- };
+ let aliases = (!aliases.is_empty())
+ .then_some(fmt::from_fn(|f| {
+ write!(f, " data-aliases=\"{}\"", fmt::from_fn(|f| aliases.iter().joined(",", f)))
+ }))
+ .maybe_display();
write_str(w, format_args!(""));
render_rightside(w, cx, &i.impl_item, RenderMode::Normal);
write_str(
From ea15f6d792069df85f4f371130a20c8d95f02074 Mon Sep 17 00:00:00 2001
From: Yotam Ofek
Date: Mon, 10 Feb 2025 17:38:16 +0000
Subject: [PATCH 33/59] librustdoc: lazily format some paths
---
src/librustdoc/html/format.rs | 45 ++++++++++++++++-----------
src/librustdoc/html/render/context.rs | 12 +++----
2 files changed, 32 insertions(+), 25 deletions(-)
diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs
index d99b40c0a38d..91b4b3ba1eba 100644
--- a/src/librustdoc/html/format.rs
+++ b/src/librustdoc/html/format.rs
@@ -709,19 +709,22 @@ fn resolved_path(
if w.alternate() {
write!(w, "{}{:#}", last.name, last.args.print(cx))?;
} else {
- let path = if use_absolute {
- if let Ok((_, _, fqp)) = href(did, cx) {
- format!(
- "{path}::{anchor}",
- path = join_with_double_colon(&fqp[..fqp.len() - 1]),
- anchor = anchor(did, *fqp.last().unwrap(), cx)
- )
+ let path = fmt::from_fn(|f| {
+ if use_absolute {
+ if let Ok((_, _, fqp)) = href(did, cx) {
+ write!(
+ f,
+ "{path}::{anchor}",
+ path = join_with_double_colon(&fqp[..fqp.len() - 1]),
+ anchor = anchor(did, *fqp.last().unwrap(), cx)
+ )
+ } else {
+ write!(f, "{}", last.name)
+ }
} else {
- last.name.to_string()
+ write!(f, "{}", anchor(did, last.name, cx))
}
- } else {
- anchor(did, last.name, cx).to_string()
- };
+ });
write!(w, "{path}{args}", args = last.args.print(cx))?;
}
Ok(())
@@ -749,16 +752,20 @@ fn primitive_link_fragment(
match m.primitive_locations.get(&prim) {
Some(&def_id) if def_id.is_local() => {
let len = cx.current.len();
- let path = if len == 0 {
- let cname_sym = ExternalCrate { crate_num: def_id.krate }.name(cx.tcx());
- format!("{cname_sym}/")
- } else {
- "../".repeat(len - 1)
- };
+ let path = fmt::from_fn(|f| {
+ if len == 0 {
+ let cname_sym = ExternalCrate { crate_num: def_id.krate }.name(cx.tcx());
+ write!(f, "{cname_sym}/")?;
+ } else {
+ for _ in 0..(len - 1) {
+ f.write_str("../")?;
+ }
+ }
+ Ok(())
+ });
write!(
f,
- "",
- path,
+ "",
prim.as_sym()
)?;
needs_termination = true;
diff --git a/src/librustdoc/html/render/context.rs b/src/librustdoc/html/render/context.rs
index dab9ba79761a..146bdd340697 100644
--- a/src/librustdoc/html/render/context.rs
+++ b/src/librustdoc/html/render/context.rs
@@ -266,12 +266,12 @@ impl<'tcx> Context<'tcx> {
// preventing an infinite redirection loop in the generated
// documentation.
- let mut path = String::new();
- for name in &names[..names.len() - 1] {
- path.push_str(name.as_str());
- path.push('/');
- }
- let _ = write!(path, "{}", item_path(ty, names.last().unwrap().as_str()));
+ let path = fmt::from_fn(|f| {
+ for name in &names[..names.len() - 1] {
+ write!(f, "{name}/")?;
+ }
+ write!(f, "{}", item_path(ty, names.last().unwrap().as_str()))
+ });
match self.shared.redirections {
Some(ref redirections) => {
let mut current_path = String::new();
From 5cc64e8da8db1baba601fff5ae90cf8cef2ba183 Mon Sep 17 00:00:00 2001
From: Yotam Ofek
Date: Mon, 10 Feb 2025 17:46:32 +0000
Subject: [PATCH 34/59] librustdoc: lazily format "read more" link in
`document_short`
---
src/librustdoc/html/render/mod.rs | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs
index 6896925753a2..204631063a23 100644
--- a/src/librustdoc/html/render/mod.rs
+++ b/src/librustdoc/html/render/mod.rs
@@ -569,18 +569,27 @@ fn document_short<'a, 'cx: 'a>(
let (mut summary_html, has_more_content) =
MarkdownSummaryLine(&s, &item.links(cx)).into_string_with_has_more_content();
- if has_more_content {
- let link =
- format!(" Read more", assoc_href_attr(item, link, cx).maybe_display());
+ let link = if has_more_content {
+ let link = fmt::from_fn(|f| {
+ write!(
+ f,
+ " Read more",
+ assoc_href_attr(item, link, cx).maybe_display()
+ )
+ });
if let Some(idx) = summary_html.rfind("") {
- summary_html.insert_str(idx, &link);
+ summary_html.insert_str(idx, &link.to_string());
+ None
} else {
- summary_html.push_str(&link);
+ Some(link)
}
+ } else {
+ None
}
+ .maybe_display();
- write!(f, "{summary_html}
")?;
+ write!(f, "{summary_html}{link}
")?;
}
Ok(())
})
From 18b9edec09aaa8c5b10d0d5cf65dd2331beb3b5b Mon Sep 17 00:00:00 2001
From: Pavel Grigorenko
Date: Fri, 14 Feb 2025 17:25:29 +0300
Subject: [PATCH 35/59] miri: shims for `erf` & friends
---
src/tools/miri/src/lib.rs | 1 +
src/tools/miri/src/shims/foreign_items.rs | 8 ++++++++
src/tools/miri/tests/pass/float.rs | 6 ++++++
3 files changed, 15 insertions(+)
diff --git a/src/tools/miri/src/lib.rs b/src/tools/miri/src/lib.rs
index a717d8ccf281..44e4f1a29321 100644
--- a/src/tools/miri/src/lib.rs
+++ b/src/tools/miri/src/lib.rs
@@ -2,6 +2,7 @@
#![feature(rustc_private)]
#![feature(cell_update)]
#![feature(float_gamma)]
+#![feature(float_erf)]
#![feature(map_try_insert)]
#![feature(never_type)]
#![feature(try_blocks)]
diff --git a/src/tools/miri/src/shims/foreign_items.rs b/src/tools/miri/src/shims/foreign_items.rs
index 97bfb04f1f47..bedc1ebdc950 100644
--- a/src/tools/miri/src/shims/foreign_items.rs
+++ b/src/tools/miri/src/shims/foreign_items.rs
@@ -742,6 +742,8 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
| "log1pf"
| "expm1f"
| "tgammaf"
+ | "erff"
+ | "erfcf"
=> {
let [f] = this.check_shim(abi, Conv::C , link_name, args)?;
let f = this.read_scalar(f)?.to_f32()?;
@@ -759,6 +761,8 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
"log1pf" => f_host.ln_1p(),
"expm1f" => f_host.exp_m1(),
"tgammaf" => f_host.gamma(),
+ "erff" => f_host.erf(),
+ "erfcf" => f_host.erfc(),
_ => bug!(),
};
let res = res.to_soft();
@@ -799,6 +803,8 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
| "log1p"
| "expm1"
| "tgamma"
+ | "erf"
+ | "erfc"
=> {
let [f] = this.check_shim(abi, Conv::C , link_name, args)?;
let f = this.read_scalar(f)?.to_f64()?;
@@ -816,6 +822,8 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
"log1p" => f_host.ln_1p(),
"expm1" => f_host.exp_m1(),
"tgamma" => f_host.gamma(),
+ "erf" => f_host.erf(),
+ "erfc" => f_host.erfc(),
_ => bug!(),
};
let res = res.to_soft();
diff --git a/src/tools/miri/tests/pass/float.rs b/src/tools/miri/tests/pass/float.rs
index 2f4f64b1aa80..51cafbb3f43b 100644
--- a/src/tools/miri/tests/pass/float.rs
+++ b/src/tools/miri/tests/pass/float.rs
@@ -1,4 +1,5 @@
#![feature(stmt_expr_attributes)]
+#![feature(float_erf)]
#![feature(float_gamma)]
#![feature(core_intrinsics)]
#![feature(f128)]
@@ -1076,6 +1077,11 @@ pub fn libm() {
let (val, sign) = (-0.5f64).ln_gamma();
assert_approx_eq!(val, (2.0 * f64::consts::PI.sqrt()).ln());
assert_eq!(sign, -1);
+
+ assert_approx_eq!(1.0f32.erf(), 0.84270079294971486934122063508260926f32);
+ assert_approx_eq!(1.0f64.erf(), 0.84270079294971486934122063508260926f64);
+ assert_approx_eq!(1.0f32.erfc(), 0.15729920705028513065877936491739074f32);
+ assert_approx_eq!(1.0f64.erfc(), 0.15729920705028513065877936491739074f64);
}
fn test_fast() {
From e4f539ea17a357ba823616fc4f898f808613e39a Mon Sep 17 00:00:00 2001
From: Josh Stone
Date: Fri, 14 Feb 2025 09:55:45 -0800
Subject: [PATCH 36/59] Bump to version 1.87.0
---
src/version | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/version b/src/version
index b7844a6ffdcb..f6342716723f 100644
--- a/src/version
+++ b/src/version
@@ -1 +1 @@
-1.86.0
+1.87.0
From b2197abcc6e12d6f39b5622d2a37ff16fd46af61 Mon Sep 17 00:00:00 2001
From: yukang
Date: Fri, 14 Feb 2025 21:28:15 +0800
Subject: [PATCH 37/59] Remove unnecessary check code in unused_delims
---
compiler/rustc_lint/src/unused.rs | 24 ------------------------
1 file changed, 24 deletions(-)
diff --git a/compiler/rustc_lint/src/unused.rs b/compiler/rustc_lint/src/unused.rs
index 5a00ac005dbf..7b43aac90c74 100644
--- a/compiler/rustc_lint/src/unused.rs
+++ b/compiler/rustc_lint/src/unused.rs
@@ -1,5 +1,4 @@
use std::iter;
-use std::ops::ControlFlow;
use rustc_ast as ast;
use rustc_ast::util::{classify, parser};
@@ -781,29 +780,6 @@ trait UnusedDelimLint {
right_pos: Option,
is_kw: bool,
) {
- // If `value` has `ExprKind::Err`, unused delim lint can be broken.
- // For example, the following code caused ICE.
- // This is because the `ExprKind::Call` in `value` has `ExprKind::Err` as its argument
- // and this leads to wrong spans. #104897
- //
- // ```
- // fn f(){(print!(á
- // ```
- use rustc_ast::visit::{Visitor, walk_expr};
- struct ErrExprVisitor;
- impl<'ast> Visitor<'ast> for ErrExprVisitor {
- type Result = ControlFlow<()>;
- fn visit_expr(&mut self, expr: &'ast ast::Expr) -> ControlFlow<()> {
- if let ExprKind::Err(_) = expr.kind {
- ControlFlow::Break(())
- } else {
- walk_expr(self, expr)
- }
- }
- }
- if ErrExprVisitor.visit_expr(value).is_break() {
- return;
- }
let spans = match value.kind {
ast::ExprKind::Block(ref block, None) if let [stmt] = block.stmts.as_slice() => stmt
.span
From 0aa2e6b606fdca2c0166b6033e3ea0cb8484eeb7 Mon Sep 17 00:00:00 2001
From: yukang
Date: Tue, 11 Feb 2025 15:26:21 +0800
Subject: [PATCH 38/59] Try to recover from path sep error in parser
---
compiler/rustc_parse/messages.ftl | 3 --
compiler/rustc_parse/src/errors.rs | 8 ----
compiler/rustc_parse/src/parser/item.rs | 3 --
compiler/rustc_parse/src/parser/path.rs | 15 +++++-
...ingle-colon-path-not-const-generics.stderr | 4 +-
...ment-list-from-path-sep-error-129273.fixed | 15 ++++++
...rgument-list-from-path-sep-error-129273.rs | 15 ++++++
...ent-list-from-path-sep-error-129273.stderr | 14 ++++++
...truct-field-type-including-single-colon.rs | 8 ++--
...t-field-type-including-single-colon.stderr | 47 ++++++++++++-------
10 files changed, 92 insertions(+), 40 deletions(-)
create mode 100644 tests/ui/suggestions/argument-list-from-path-sep-error-129273.fixed
create mode 100644 tests/ui/suggestions/argument-list-from-path-sep-error-129273.rs
create mode 100644 tests/ui/suggestions/argument-list-from-path-sep-error-129273.stderr
diff --git a/compiler/rustc_parse/messages.ftl b/compiler/rustc_parse/messages.ftl
index d50bd18a1d7d..563081c7240c 100644
--- a/compiler/rustc_parse/messages.ftl
+++ b/compiler/rustc_parse/messages.ftl
@@ -743,9 +743,6 @@ parse_single_colon_import_path = expected `::`, found `:`
.suggestion = use double colon
.note = import paths are delimited using `::`
-parse_single_colon_struct_type = found single colon in a struct field type path
- .suggestion = write a path separator here
-
parse_static_with_generics = static items may not have generic parameters
parse_struct_literal_body_without_path =
diff --git a/compiler/rustc_parse/src/errors.rs b/compiler/rustc_parse/src/errors.rs
index 8f0e29c27695..dc03d6f9521d 100644
--- a/compiler/rustc_parse/src/errors.rs
+++ b/compiler/rustc_parse/src/errors.rs
@@ -3071,14 +3071,6 @@ pub(crate) struct BadItemKind {
pub help: bool,
}
-#[derive(Diagnostic)]
-#[diag(parse_single_colon_struct_type)]
-pub(crate) struct SingleColonStructType {
- #[primary_span]
- #[suggestion(code = "::", applicability = "maybe-incorrect", style = "verbose")]
- pub span: Span,
-}
-
#[derive(Diagnostic)]
#[diag(parse_macro_rules_missing_bang)]
pub(crate) struct MacroRulesMissingBang {
diff --git a/compiler/rustc_parse/src/parser/item.rs b/compiler/rustc_parse/src/parser/item.rs
index 637ed2774a29..c923717ecaf2 100644
--- a/compiler/rustc_parse/src/parser/item.rs
+++ b/compiler/rustc_parse/src/parser/item.rs
@@ -2043,9 +2043,6 @@ impl<'a> Parser<'a> {
}
self.expect_field_ty_separator()?;
let ty = self.parse_ty()?;
- if self.token == token::Colon && self.look_ahead(1, |t| *t != token::Colon) {
- self.dcx().emit_err(errors::SingleColonStructType { span: self.token.span });
- }
let default = if self.token == token::Eq {
self.bump();
let const_expr = self.parse_expr_anon_const()?;
diff --git a/compiler/rustc_parse/src/parser/path.rs b/compiler/rustc_parse/src/parser/path.rs
index 576711e66777..b241aa892db9 100644
--- a/compiler/rustc_parse/src/parser/path.rs
+++ b/compiler/rustc_parse/src/parser/path.rs
@@ -246,8 +246,19 @@ impl<'a> Parser<'a> {
segments.push(segment);
if self.is_import_coupler() || !self.eat_path_sep() {
- if style == PathStyle::Expr
- && self.may_recover()
+ let ok_for_recovery = self.may_recover()
+ && match style {
+ PathStyle::Expr => true,
+ PathStyle::Type if let Some((ident, _)) = self.prev_token.ident() => {
+ self.token == token::Colon
+ && ident.as_str().chars().all(|c| c.is_lowercase())
+ && self.token.span.lo() == self.prev_token.span.hi()
+ && self
+ .look_ahead(1, |token| self.token.span.hi() == token.span.lo())
+ }
+ _ => false,
+ };
+ if ok_for_recovery
&& self.token == token::Colon
&& self.look_ahead(1, |token| token.is_ident() && !token.is_reserved_ident())
{
diff --git a/tests/ui/generics/single-colon-path-not-const-generics.stderr b/tests/ui/generics/single-colon-path-not-const-generics.stderr
index 4e695b2dcd6d..c14a5e62a0c8 100644
--- a/tests/ui/generics/single-colon-path-not-const-generics.stderr
+++ b/tests/ui/generics/single-colon-path-not-const-generics.stderr
@@ -1,8 +1,6 @@
error: path separator must be a double colon
--> $DIR/single-colon-path-not-const-generics.rs:8:18
|
-LL | pub struct Foo {
- | --- while parsing this struct
LL | a: Vec,
| ^
|
@@ -10,7 +8,7 @@ LL | a: Vec,
help: use a double colon instead
|
LL | a: Vec,
- | +
+ | +
error: aborting due to 1 previous error
diff --git a/tests/ui/suggestions/argument-list-from-path-sep-error-129273.fixed b/tests/ui/suggestions/argument-list-from-path-sep-error-129273.fixed
new file mode 100644
index 000000000000..f5dbf0c8b6f4
--- /dev/null
+++ b/tests/ui/suggestions/argument-list-from-path-sep-error-129273.fixed
@@ -0,0 +1,15 @@
+//@ run-rustfix
+
+use std::fmt;
+
+struct Hello;
+
+impl fmt::Display for Hello {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { //~ ERROR path separator must be a double colon
+ write!(f, "hello")
+ }
+}
+
+fn main() {
+ let _ = Hello;
+}
diff --git a/tests/ui/suggestions/argument-list-from-path-sep-error-129273.rs b/tests/ui/suggestions/argument-list-from-path-sep-error-129273.rs
new file mode 100644
index 000000000000..c41880a26f6e
--- /dev/null
+++ b/tests/ui/suggestions/argument-list-from-path-sep-error-129273.rs
@@ -0,0 +1,15 @@
+//@ run-rustfix
+
+use std::fmt;
+
+struct Hello;
+
+impl fmt::Display for Hello {
+ fn fmt(&self, f: &mut fmt:Formatter) -> fmt::Result { //~ ERROR path separator must be a double colon
+ write!(f, "hello")
+ }
+}
+
+fn main() {
+ let _ = Hello;
+}
diff --git a/tests/ui/suggestions/argument-list-from-path-sep-error-129273.stderr b/tests/ui/suggestions/argument-list-from-path-sep-error-129273.stderr
new file mode 100644
index 000000000000..92947e3b177f
--- /dev/null
+++ b/tests/ui/suggestions/argument-list-from-path-sep-error-129273.stderr
@@ -0,0 +1,14 @@
+error: path separator must be a double colon
+ --> $DIR/argument-list-from-path-sep-error-129273.rs:8:30
+ |
+LL | fn fmt(&self, f: &mut fmt:Formatter) -> fmt::Result {
+ | ^
+ |
+ = note: if you meant to annotate an expression with a type, the type ascription syntax has been removed, see issue #101728
+help: use a double colon instead
+ |
+LL | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ | +
+
+error: aborting due to 1 previous error
+
diff --git a/tests/ui/suggestions/struct-field-type-including-single-colon.rs b/tests/ui/suggestions/struct-field-type-including-single-colon.rs
index b7ad6d996f1a..a3111028895d 100644
--- a/tests/ui/suggestions/struct-field-type-including-single-colon.rs
+++ b/tests/ui/suggestions/struct-field-type-including-single-colon.rs
@@ -7,14 +7,14 @@ mod foo {
struct Foo {
a: foo:A,
- //~^ ERROR found single colon in a struct field type path
- //~| expected `,`, or `}`, found `:`
+ //~^ ERROR path separator must be a double colon
+ //~| ERROR struct `A` is private
}
struct Bar {
b: foo::bar:B,
- //~^ ERROR found single colon in a struct field type path
- //~| expected `,`, or `}`, found `:`
+ //~^ ERROR path separator must be a double colon
+ //~| ERROR module `bar` is private
}
fn main() {}
diff --git a/tests/ui/suggestions/struct-field-type-including-single-colon.stderr b/tests/ui/suggestions/struct-field-type-including-single-colon.stderr
index 5ffc5b40849b..ce16aca1e14a 100644
--- a/tests/ui/suggestions/struct-field-type-including-single-colon.stderr
+++ b/tests/ui/suggestions/struct-field-type-including-single-colon.stderr
@@ -1,40 +1,53 @@
-error: found single colon in a struct field type path
+error: path separator must be a double colon
--> $DIR/struct-field-type-including-single-colon.rs:9:11
|
LL | a: foo:A,
| ^
|
-help: write a path separator here
+ = note: if you meant to annotate an expression with a type, the type ascription syntax has been removed, see issue #101728
+help: use a double colon instead
|
LL | a: foo::A,
| +
-error: expected `,`, or `}`, found `:`
- --> $DIR/struct-field-type-including-single-colon.rs:9:11
- |
-LL | struct Foo {
- | --- while parsing this struct
-LL | a: foo:A,
- | ^
-
-error: found single colon in a struct field type path
+error: path separator must be a double colon
--> $DIR/struct-field-type-including-single-colon.rs:15:16
|
LL | b: foo::bar:B,
| ^
|
-help: write a path separator here
+ = note: if you meant to annotate an expression with a type, the type ascription syntax has been removed, see issue #101728
+help: use a double colon instead
|
LL | b: foo::bar::B,
| +
-error: expected `,`, or `}`, found `:`
- --> $DIR/struct-field-type-including-single-colon.rs:15:16
+error[E0603]: struct `A` is private
+ --> $DIR/struct-field-type-including-single-colon.rs:9:12
+ |
+LL | a: foo:A,
+ | ^ private struct
+ |
+note: the struct `A` is defined here
+ --> $DIR/struct-field-type-including-single-colon.rs:2:5
+ |
+LL | struct A;
+ | ^^^^^^^^^
+
+error[E0603]: module `bar` is private
+ --> $DIR/struct-field-type-including-single-colon.rs:15:13
|
-LL | struct Bar {
- | --- while parsing this struct
LL | b: foo::bar:B,
- | ^
+ | ^^^ - struct `B` is not publicly re-exported
+ | |
+ | private module
+ |
+note: the module `bar` is defined here
+ --> $DIR/struct-field-type-including-single-colon.rs:3:5
+ |
+LL | mod bar {
+ | ^^^^^^^
error: aborting due to 4 previous errors
+For more information about this error, try `rustc --explain E0603`.
From 351cc1f5b7d7bee7f9accf75d768e2d179a6f89d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Le=C3=B3n=20Orell=20Valerian=20Liehr?=
Date: Sat, 15 Feb 2025 03:27:22 +0100
Subject: [PATCH 39/59] rustdoc: Properly restore search input placeholder
---
src/librustdoc/html/static/js/search.js | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/librustdoc/html/static/js/search.js b/src/librustdoc/html/static/js/search.js
index 121a43e3d92e..ccbd6811b071 100644
--- a/src/librustdoc/html/static/js/search.js
+++ b/src/librustdoc/html/static/js/search.js
@@ -5318,8 +5318,9 @@ function registerSearchEvents() {
// @ts-expect-error
searchState.input.addEventListener("blur", () => {
- // @ts-expect-error
- searchState.input.placeholder = searchState.input.origPlaceholder;
+ if (window.searchState.input) {
+ window.searchState.input.placeholder = window.searchState.origPlaceholder;
+ }
});
// Push and pop states are used to add search results to the browser
From 3b4ff16bb116c81950608b3241593428c50aadad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Le=C3=B3n=20Orell=20Valerian=20Liehr?=
Date: Wed, 10 Jul 2024 13:59:42 +0200
Subject: [PATCH 40/59] Clean up
rustc_session::output::{find,validate}_crate_name
---
compiler/rustc_session/messages.ftl | 6 +-
compiler/rustc_session/src/errors.rs | 16 +---
compiler/rustc_session/src/output.rs | 93 ++++++++++---------
.../need-crate-arg-ignore-tidy$x.stderr | 4 +-
4 files changed, 61 insertions(+), 58 deletions(-)
diff --git a/compiler/rustc_session/messages.ftl b/compiler/rustc_session/messages.ftl
index e5fba8cc5a2d..f108488cd582 100644
--- a/compiler/rustc_session/messages.ftl
+++ b/compiler/rustc_session/messages.ftl
@@ -8,7 +8,7 @@ session_cannot_mix_and_match_sanitizers = `-Zsanitizer={$first}` is incompatible
session_cli_feature_diagnostic_help =
add `-Zcrate-attr="feature({$feature})"` to the command-line options to enable
-session_crate_name_does_not_match = `--crate-name` and `#[crate_name]` are required to match, but `{$s}` != `{$name}`
+session_crate_name_does_not_match = `--crate-name` and `#[crate_name]` are required to match, but `{$crate_name}` != `{$attr_crate_name}`
session_crate_name_empty = crate name must not be empty
@@ -52,8 +52,8 @@ session_instrumentation_not_supported = {$us} instrumentation is not supported f
session_int_literal_too_large = integer literal is too large
.note = value exceeds limit of `{$limit}`
-session_invalid_character_in_create_name = invalid character `{$character}` in crate name: `{$crate_name}`
-session_invalid_character_in_create_name_help = you can either pass `--crate-name` on the command line or add `#![crate_name="…"]` to set the crate name
+session_invalid_character_in_crate_name = invalid character {$character} in crate name: `{$crate_name}`
+ .help = you can either pass `--crate-name` on the command line or add `#![crate_name = "…"]` to set the crate name
session_invalid_float_literal_suffix = invalid suffix `{$suffix}` for float literal
.label = invalid suffix `{$suffix}`
diff --git a/compiler/rustc_session/src/errors.rs b/compiler/rustc_session/src/errors.rs
index 75c3b2c7a859..b57560ff7822 100644
--- a/compiler/rustc_session/src/errors.rs
+++ b/compiler/rustc_session/src/errors.rs
@@ -217,8 +217,8 @@ pub(crate) struct FileWriteFail<'a> {
pub(crate) struct CrateNameDoesNotMatch {
#[primary_span]
pub(crate) span: Span,
- pub(crate) s: Symbol,
- pub(crate) name: Symbol,
+ pub(crate) crate_name: Symbol,
+ pub(crate) attr_crate_name: Symbol,
}
#[derive(Diagnostic)]
@@ -235,20 +235,14 @@ pub(crate) struct CrateNameEmpty {
}
#[derive(Diagnostic)]
-#[diag(session_invalid_character_in_create_name)]
+#[diag(session_invalid_character_in_crate_name)]
pub(crate) struct InvalidCharacterInCrateName {
#[primary_span]
pub(crate) span: Option,
pub(crate) character: char,
pub(crate) crate_name: Symbol,
- #[subdiagnostic]
- pub(crate) crate_name_help: Option,
-}
-
-#[derive(Subdiagnostic)]
-pub(crate) enum InvalidCrateNameHelp {
- #[help(session_invalid_character_in_create_name_help)]
- AddCrateName,
+ #[help]
+ pub(crate) help: Option<()>,
}
#[derive(Subdiagnostic)]
diff --git a/compiler/rustc_session/src/output.rs b/compiler/rustc_session/src/output.rs
index ff0419d06bff..a6d4ebf23c70 100644
--- a/compiler/rustc_session/src/output.rs
+++ b/compiler/rustc_session/src/output.rs
@@ -9,7 +9,7 @@ use crate::Session;
use crate::config::{self, CrateType, Input, OutFileName, OutputFilenames, OutputType};
use crate::errors::{
self, CrateNameDoesNotMatch, CrateNameEmpty, CrateNameInvalid, FileIsNotWriteable,
- InvalidCharacterInCrateName, InvalidCrateNameHelp,
+ InvalidCharacterInCrateName,
};
pub fn out_filename(
@@ -49,10 +49,13 @@ fn is_writeable(p: &Path) -> bool {
}
}
+/// Find and [validate] the crate name.
+///
+/// [validate]: validate_crate_name
pub fn find_crate_name(sess: &Session, attrs: &[ast::Attribute]) -> Symbol {
- let validate = |s: Symbol, span: Option| {
- validate_crate_name(sess, s, span);
- s
+ let validate = |name, span| {
+ validate_crate_name(sess, name, span);
+ name
};
// Look in attributes 100% of the time to make sure the attribute is marked
@@ -62,56 +65,62 @@ pub fn find_crate_name(sess: &Session, attrs: &[ast::Attribute]) -> Symbol {
let attr_crate_name =
attr::find_by_name(attrs, sym::crate_name).and_then(|at| at.value_str().map(|s| (at, s)));
- if let Some(ref s) = sess.opts.crate_name {
- let s = Symbol::intern(s);
- if let Some((attr, name)) = attr_crate_name {
- if name != s {
- sess.dcx().emit_err(CrateNameDoesNotMatch { span: attr.span, s, name });
- }
+ if let Some(crate_name) = &sess.opts.crate_name {
+ let crate_name = Symbol::intern(crate_name);
+ if let Some((attr, attr_crate_name)) = attr_crate_name
+ && attr_crate_name != crate_name
+ {
+ sess.dcx().emit_err(CrateNameDoesNotMatch {
+ span: attr.span,
+ crate_name,
+ attr_crate_name,
+ });
}
- return validate(s, None);
+ return validate(crate_name, None);
}
- if let Some((attr, s)) = attr_crate_name {
- return validate(s, Some(attr.span));
+ if let Some((attr, crate_name)) = attr_crate_name {
+ return validate(crate_name, Some(attr.span));
}
- if let Input::File(ref path) = sess.io.input {
- if let Some(s) = path.file_stem().and_then(|s| s.to_str()) {
- if s.starts_with('-') {
- sess.dcx().emit_err(CrateNameInvalid { s });
- } else {
- return validate(Symbol::intern(&s.replace('-', "_")), None);
- }
+
+ if let Input::File(ref path) = sess.io.input
+ && let Some(s) = path.file_stem().and_then(|s| s.to_str())
+ {
+ if s.starts_with('-') {
+ sess.dcx().emit_err(CrateNameInvalid { s });
+ } else {
+ return validate(Symbol::intern(&s.replace('-', "_")), None);
}
}
sym::rust_out
}
-pub fn validate_crate_name(sess: &Session, s: Symbol, sp: Option) {
+/// Validate the given crate name.
+///
+/// Note that this validation is more permissive than identifier parsing. It considers
+/// non-empty sequences of alphanumeric and underscore characters to be valid crate names.
+/// Most notably, it accepts names starting with a numeric character like `0`!
+///
+/// Furthermore, this shouldn't be taken as the canonical crate name validator.
+/// Other places may use a more restrictive grammar (e.g., identifier or ASCII identifier).
+pub fn validate_crate_name(sess: &Session, crate_name: Symbol, span: Option) {
let mut guar = None;
- {
- if s.is_empty() {
- guar = Some(sess.dcx().emit_err(CrateNameEmpty { span: sp }));
- }
- for c in s.as_str().chars() {
- if c.is_alphanumeric() {
- continue;
- }
- if c == '_' {
- continue;
- }
- guar = Some(sess.dcx().emit_err(InvalidCharacterInCrateName {
- span: sp,
- character: c,
- crate_name: s,
- crate_name_help: if sp.is_none() {
- Some(InvalidCrateNameHelp::AddCrateName)
- } else {
- None
- },
- }));
+
+ if crate_name.is_empty() {
+ guar = Some(sess.dcx().emit_err(CrateNameEmpty { span }));
+ }
+
+ for c in crate_name.as_str().chars() {
+ if c.is_alphanumeric() || c == '_' {
+ continue;
}
+ guar = Some(sess.dcx().emit_err(InvalidCharacterInCrateName {
+ span,
+ character: c,
+ crate_name,
+ help: span.is_none().then_some(()),
+ }));
}
if let Some(guar) = guar {
diff --git a/tests/ui/command/need-crate-arg-ignore-tidy$x.stderr b/tests/ui/command/need-crate-arg-ignore-tidy$x.stderr
index 28f6d31b1ce5..861510212f92 100644
--- a/tests/ui/command/need-crate-arg-ignore-tidy$x.stderr
+++ b/tests/ui/command/need-crate-arg-ignore-tidy$x.stderr
@@ -1,6 +1,6 @@
-error: invalid character `'$'` in crate name: `need_crate_arg_ignore_tidy$x`
+error: invalid character '$' in crate name: `need_crate_arg_ignore_tidy$x`
|
- = help: you can either pass `--crate-name` on the command line or add `#![crate_name="…"]` to set the crate name
+ = help: you can either pass `--crate-name` on the command line or add `#![crate_name = "…"]` to set the crate name
error: aborting due to 1 previous error
From 46d53a68aa1b10833ec25178171f34e29e71f1f1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Le=C3=B3n=20Orell=20Valerian=20Liehr?=
Date: Wed, 10 Jul 2024 17:22:40 +0200
Subject: [PATCH 41/59] Move `#![crate_type]` UI tests into attributes
directory
Gets rid of two top-level UI tests which is always great.
Furthermore, move `need-crate-arg-ignore-tidy$x.rs`
from `command/` to `invalid-compile-flags/`.
`command/` concerns `std::process::Command` tests, not CLI tests.
---
.../crate-type-delimited.rs} | 0
.../crate-type-delimited.stderr} | 2 +-
tests/ui/{no_crate_type.rs => attributes/crate-type-empty.rs} | 0
.../crate-type-empty.stderr} | 2 +-
.../crate-type-macro-call.rs} | 0
.../crate-type-macro-call.stderr} | 2 +-
.../need-crate-arg-ignore-tidy$x.rs | 0
.../need-crate-arg-ignore-tidy$x.stderr | 0
8 files changed, 3 insertions(+), 3 deletions(-)
rename tests/ui/{invalid_crate_type_syntax.rs => attributes/crate-type-delimited.rs} (100%)
rename tests/ui/{invalid_crate_type_syntax.stderr => attributes/crate-type-delimited.stderr} (82%)
rename tests/ui/{no_crate_type.rs => attributes/crate-type-empty.rs} (100%)
rename tests/ui/{no_crate_type.stderr => attributes/crate-type-empty.stderr} (84%)
rename tests/ui/{invalid/invalid-crate-type-macro.rs => attributes/crate-type-macro-call.rs} (100%)
rename tests/ui/{invalid/invalid-crate-type-macro.stderr => attributes/crate-type-macro-call.stderr} (83%)
rename tests/ui/{command => invalid-compile-flags}/need-crate-arg-ignore-tidy$x.rs (100%)
rename tests/ui/{command => invalid-compile-flags}/need-crate-arg-ignore-tidy$x.stderr (100%)
diff --git a/tests/ui/invalid_crate_type_syntax.rs b/tests/ui/attributes/crate-type-delimited.rs
similarity index 100%
rename from tests/ui/invalid_crate_type_syntax.rs
rename to tests/ui/attributes/crate-type-delimited.rs
diff --git a/tests/ui/invalid_crate_type_syntax.stderr b/tests/ui/attributes/crate-type-delimited.stderr
similarity index 82%
rename from tests/ui/invalid_crate_type_syntax.stderr
rename to tests/ui/attributes/crate-type-delimited.stderr
index a5563720f622..0bbbe07b1981 100644
--- a/tests/ui/invalid_crate_type_syntax.stderr
+++ b/tests/ui/attributes/crate-type-delimited.stderr
@@ -1,5 +1,5 @@
error: malformed `crate_type` attribute input
- --> $DIR/invalid_crate_type_syntax.rs:2:1
+ --> $DIR/crate-type-delimited.rs:2:1
|
LL | #![crate_type(lib)]
| ^^^^^^^^^^^^^^^^^^^ help: must be of the form: `#![crate_type = "bin|lib|..."]`
diff --git a/tests/ui/no_crate_type.rs b/tests/ui/attributes/crate-type-empty.rs
similarity index 100%
rename from tests/ui/no_crate_type.rs
rename to tests/ui/attributes/crate-type-empty.rs
diff --git a/tests/ui/no_crate_type.stderr b/tests/ui/attributes/crate-type-empty.stderr
similarity index 84%
rename from tests/ui/no_crate_type.stderr
rename to tests/ui/attributes/crate-type-empty.stderr
index 85d8f87afa67..b9279d961eef 100644
--- a/tests/ui/no_crate_type.stderr
+++ b/tests/ui/attributes/crate-type-empty.stderr
@@ -1,5 +1,5 @@
error: malformed `crate_type` attribute input
- --> $DIR/no_crate_type.rs:2:1
+ --> $DIR/crate-type-empty.rs:2:1
|
LL | #![crate_type]
| ^^^^^^^^^^^^^^ help: must be of the form: `#![crate_type = "bin|lib|..."]`
diff --git a/tests/ui/invalid/invalid-crate-type-macro.rs b/tests/ui/attributes/crate-type-macro-call.rs
similarity index 100%
rename from tests/ui/invalid/invalid-crate-type-macro.rs
rename to tests/ui/attributes/crate-type-macro-call.rs
diff --git a/tests/ui/invalid/invalid-crate-type-macro.stderr b/tests/ui/attributes/crate-type-macro-call.stderr
similarity index 83%
rename from tests/ui/invalid/invalid-crate-type-macro.stderr
rename to tests/ui/attributes/crate-type-macro-call.stderr
index 1cf77d4086bb..6ccc3edf885e 100644
--- a/tests/ui/invalid/invalid-crate-type-macro.stderr
+++ b/tests/ui/attributes/crate-type-macro-call.stderr
@@ -1,5 +1,5 @@
error: malformed `crate_type` attribute input
- --> $DIR/invalid-crate-type-macro.rs:1:1
+ --> $DIR/crate-type-macro-call.rs:1:1
|
LL | #![crate_type = foo!()]
| ^^^^^^^^^^^^^^^^^^^^^^^ help: must be of the form: `#![crate_type = "bin|lib|..."]`
diff --git a/tests/ui/command/need-crate-arg-ignore-tidy$x.rs b/tests/ui/invalid-compile-flags/need-crate-arg-ignore-tidy$x.rs
similarity index 100%
rename from tests/ui/command/need-crate-arg-ignore-tidy$x.rs
rename to tests/ui/invalid-compile-flags/need-crate-arg-ignore-tidy$x.rs
diff --git a/tests/ui/command/need-crate-arg-ignore-tidy$x.stderr b/tests/ui/invalid-compile-flags/need-crate-arg-ignore-tidy$x.stderr
similarity index 100%
rename from tests/ui/command/need-crate-arg-ignore-tidy$x.stderr
rename to tests/ui/invalid-compile-flags/need-crate-arg-ignore-tidy$x.stderr
From f3fa720352c992c3bd7b3c6fb21aac514943db8d Mon Sep 17 00:00:00 2001
From: geetanshjuneja
Date: Sat, 15 Feb 2025 09:37:01 +0530
Subject: [PATCH 42/59] made check_argument_compat public
---
compiler/rustc_const_eval/src/interpret/call.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/compiler/rustc_const_eval/src/interpret/call.rs b/compiler/rustc_const_eval/src/interpret/call.rs
index cdf706f3752a..995cec411459 100644
--- a/compiler/rustc_const_eval/src/interpret/call.rs
+++ b/compiler/rustc_const_eval/src/interpret/call.rs
@@ -241,7 +241,7 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
interp_ok(caller == callee)
}
- fn check_argument_compat(
+ pub fn check_argument_compat(
&self,
caller_abi: &ArgAbi<'tcx, Ty<'tcx>>,
callee_abi: &ArgAbi<'tcx, Ty<'tcx>>,
From ed870c3804bd9b8f358a2193cb9b4f1eaf821f3f Mon Sep 17 00:00:00 2001
From: Weihang Lo
Date: Fri, 14 Feb 2025 23:03:56 -0500
Subject: [PATCH 43/59] Update cargo
Also add Zlib to Cargo's license exception
---
src/tools/cargo | 2 +-
src/tools/tidy/src/deps.rs | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/tools/cargo b/src/tools/cargo
index 2928e32734b0..ce948f4616e3 160000
--- a/src/tools/cargo
+++ b/src/tools/cargo
@@ -1 +1 @@
-Subproject commit 2928e32734b04925ee51e1ae88bea9a83d2fd451
+Subproject commit ce948f4616e3d4277e30c75c8bb01e094910df39
diff --git a/src/tools/tidy/src/deps.rs b/src/tools/tidy/src/deps.rs
index d75a68d59734..e8e7dfe0d84c 100644
--- a/src/tools/tidy/src/deps.rs
+++ b/src/tools/tidy/src/deps.rs
@@ -132,6 +132,7 @@ const EXCEPTIONS_CARGO: ExceptionList = &[
("dunce", "CC0-1.0 OR MIT-0 OR Apache-2.0"),
("encoding_rs", "(Apache-2.0 OR MIT) AND BSD-3-Clause"),
("fiat-crypto", "MIT OR Apache-2.0 OR BSD-1-Clause"),
+ ("foldhash", "Zlib"),
("im-rc", "MPL-2.0+"),
("normalize-line-endings", "Apache-2.0"),
("openssl", "Apache-2.0"),
From 11c174006e94de3c78faa679fe958c3ff3986842 Mon Sep 17 00:00:00 2001
From: Thalia Archibald
Date: Fri, 14 Feb 2025 21:48:12 -0800
Subject: [PATCH 44/59] Forward all default methods for I/O impls
---
library/std/src/io/impls.rs | 62 +++++++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
diff --git a/library/std/src/io/impls.rs b/library/std/src/io/impls.rs
index b952c85addf6..8239b29884e8 100644
--- a/library/std/src/io/impls.rs
+++ b/library/std/src/io/impls.rs
@@ -45,6 +45,7 @@ impl Read for &mut R {
fn read_exact(&mut self, buf: &mut [u8]) -> io::Result<()> {
(**self).read_exact(buf)
}
+
#[inline]
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> io::Result<()> {
(**self).read_buf_exact(cursor)
@@ -77,6 +78,11 @@ impl Write for &mut W {
(**self).write_all(buf)
}
+ #[inline]
+ fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> io::Result<()> {
+ (**self).write_all_vectored(bufs)
+ }
+
#[inline]
fn write_fmt(&mut self, fmt: fmt::Arguments<'_>) -> io::Result<()> {
(**self).write_fmt(fmt)
@@ -89,10 +95,25 @@ impl Seek for &mut S {
(**self).seek(pos)
}
+ #[inline]
+ fn rewind(&mut self) -> io::Result<()> {
+ (**self).rewind()
+ }
+
+ #[inline]
+ fn stream_len(&mut self) -> io::Result {
+ (**self).stream_len()
+ }
+
#[inline]
fn stream_position(&mut self) -> io::Result {
(**self).stream_position()
}
+
+ #[inline]
+ fn seek_relative(&mut self, offset: i64) -> io::Result<()> {
+ (**self).seek_relative(offset)
+ }
}
#[stable(feature = "rust1", since = "1.0.0")]
impl BufRead for &mut B {
@@ -106,11 +127,21 @@ impl BufRead for &mut B {
(**self).consume(amt)
}
+ #[inline]
+ fn has_data_left(&mut self) -> io::Result {
+ (**self).has_data_left()
+ }
+
#[inline]
fn read_until(&mut self, byte: u8, buf: &mut Vec) -> io::Result {
(**self).read_until(byte, buf)
}
+ #[inline]
+ fn skip_until(&mut self, byte: u8) -> io::Result {
+ (**self).skip_until(byte)
+ }
+
#[inline]
fn read_line(&mut self, buf: &mut String) -> io::Result {
(**self).read_line(buf)
@@ -153,6 +184,7 @@ impl Read for Box {
fn read_exact(&mut self, buf: &mut [u8]) -> io::Result<()> {
(**self).read_exact(buf)
}
+
#[inline]
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> io::Result<()> {
(**self).read_buf_exact(cursor)
@@ -185,6 +217,11 @@ impl Write for Box {
(**self).write_all(buf)
}
+ #[inline]
+ fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> io::Result<()> {
+ (**self).write_all_vectored(bufs)
+ }
+
#[inline]
fn write_fmt(&mut self, fmt: fmt::Arguments<'_>) -> io::Result<()> {
(**self).write_fmt(fmt)
@@ -197,10 +234,25 @@ impl Seek for Box {
(**self).seek(pos)
}
+ #[inline]
+ fn rewind(&mut self) -> io::Result<()> {
+ (**self).rewind()
+ }
+
+ #[inline]
+ fn stream_len(&mut self) -> io::Result {
+ (**self).stream_len()
+ }
+
#[inline]
fn stream_position(&mut self) -> io::Result {
(**self).stream_position()
}
+
+ #[inline]
+ fn seek_relative(&mut self, offset: i64) -> io::Result<()> {
+ (**self).seek_relative(offset)
+ }
}
#[stable(feature = "rust1", since = "1.0.0")]
impl BufRead for Box {
@@ -214,11 +266,21 @@ impl BufRead for Box {
(**self).consume(amt)
}
+ #[inline]
+ fn has_data_left(&mut self) -> io::Result {
+ (**self).has_data_left()
+ }
+
#[inline]
fn read_until(&mut self, byte: u8, buf: &mut Vec) -> io::Result {
(**self).read_until(byte, buf)
}
+ #[inline]
+ fn skip_until(&mut self, byte: u8) -> io::Result {
+ (**self).skip_until(byte)
+ }
+
#[inline]
fn read_line(&mut self, buf: &mut String) -> io::Result {
(**self).read_line(buf)
From 8769d03caf689f89e778f95f5458a5b69be6258d Mon Sep 17 00:00:00 2001
From: Ralf Jung
Date: Sat, 15 Feb 2025 08:21:27 +0100
Subject: [PATCH 45/59] add a doc comment
---
compiler/rustc_const_eval/src/interpret/call.rs | 1 +
1 file changed, 1 insertion(+)
diff --git a/compiler/rustc_const_eval/src/interpret/call.rs b/compiler/rustc_const_eval/src/interpret/call.rs
index 995cec411459..29f819cca1fb 100644
--- a/compiler/rustc_const_eval/src/interpret/call.rs
+++ b/compiler/rustc_const_eval/src/interpret/call.rs
@@ -241,6 +241,7 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
interp_ok(caller == callee)
}
+ /// Returns a `bool` saying whether the two arguments are ABI-compatible.
pub fn check_argument_compat(
&self,
caller_abi: &ArgAbi<'tcx, Ty<'tcx>>,
From b2d6a7f6934f3050102e2bed16106aca38baf30f Mon Sep 17 00:00:00 2001
From: onur-ozkan
Date: Sat, 15 Feb 2025 11:00:31 +0300
Subject: [PATCH 46/59] check if CI-LLVM is enabled before testing it
Signed-off-by: onur-ozkan
---
src/bootstrap/src/core/builder/tests.rs | 27 ++++++++++++++-----------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/src/bootstrap/src/core/builder/tests.rs b/src/bootstrap/src/core/builder/tests.rs
index a0be474ca3e3..5e3e0ef654fd 100644
--- a/src/bootstrap/src/core/builder/tests.rs
+++ b/src/bootstrap/src/core/builder/tests.rs
@@ -1051,19 +1051,22 @@ fn test_prebuilt_llvm_config_path_resolution() {
"#,
);
- let build = Build::new(config.clone());
- let builder = Builder::new(&build);
+ // CI-LLVM isn't always available; check if it's enabled before testing.
+ if config.llvm_from_ci {
+ let build = Build::new(config.clone());
+ let builder = Builder::new(&build);
- let actual = prebuilt_llvm_config(&builder, builder.config.build, false)
- .llvm_result()
- .llvm_config
- .clone();
- let expected = builder
- .out
- .join(builder.config.build)
- .join("ci-llvm/bin")
- .join(exe("llvm-config", builder.config.build));
- assert_eq!(expected, actual);
+ let actual = prebuilt_llvm_config(&builder, builder.config.build, false)
+ .llvm_result()
+ .llvm_config
+ .clone();
+ let expected = builder
+ .out
+ .join(builder.config.build)
+ .join("ci-llvm/bin")
+ .join(exe("llvm-config", builder.config.build));
+ assert_eq!(expected, actual);
+ }
}
#[test]
From 02f1f346c2c83a930f2f4541b5181225491b875e Mon Sep 17 00:00:00 2001
From: Tapan Prakash
Date: Sat, 15 Feb 2025 15:34:27 +0530
Subject: [PATCH 47/59] fix(rustdoc): Fixed `Copy Item Path` in rust doc
---
src/librustdoc/html/static/js/main.js | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/librustdoc/html/static/js/main.js b/src/librustdoc/html/static/js/main.js
index a348c6c5678b..e46cc1897e9e 100644
--- a/src/librustdoc/html/static/js/main.js
+++ b/src/librustdoc/html/static/js/main.js
@@ -2039,7 +2039,10 @@ function preLoadCss(cssUrl) {
// Most page titles are '- in - Rust', except
// modules (which don't have the first part) and keywords/primitives
// (which don't have a module path)
- const [item, module] = document.title.split(" in ");
+ const titleElement = document.querySelector("title");
+ const title = titleElement && titleElement.textContent ?
+ titleElement.textContent.replace(" - Rust", "") : "";
+ const [item, module] = title.split(" in ");
const path = [item];
if (module !== undefined) {
path.unshift(module);
From e3412617dfb2440e00f46efb921b721c7ed16230 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?=
Date: Sat, 15 Feb 2025 11:45:19 +0100
Subject: [PATCH 48/59] Do not generate invalid links in job summaries
---
src/ci/scripts/upload-artifacts.sh | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/ci/scripts/upload-artifacts.sh b/src/ci/scripts/upload-artifacts.sh
index 0bc91f6ba715..975b4c527267 100755
--- a/src/ci/scripts/upload-artifacts.sh
+++ b/src/ci/scripts/upload-artifacts.sh
@@ -52,10 +52,15 @@ access_url="https://ci-artifacts.rust-lang.org/${deploy_dir}/$(ciCommit)"
# to make them easily accessible.
if [ -n "${GITHUB_STEP_SUMMARY}" ]
then
- echo "# CI artifacts" >> "${GITHUB_STEP_SUMMARY}"
+ archives=($(find "${upload_dir}" -maxdepth 1 -name "*.xz"))
- for filename in "${upload_dir}"/*.xz; do
- filename=$(basename "${filename}")
- echo "- [${filename}](${access_url}/${filename})" >> "${GITHUB_STEP_SUMMARY}"
- done
+ # Avoid generating an invalid "*.xz" file if there are no archives
+ if [ ${#archives[@]} -gt 0 ]; then
+ echo "# CI artifacts" >> "${GITHUB_STEP_SUMMARY}"
+
+ for filename in "${upload_dir}"/*.xz; do
+ filename=$(basename "${filename}")
+ echo "- [${filename}](${access_url}/${filename})" >> "${GITHUB_STEP_SUMMARY}"
+ done
+ fi
fi
From 557ed8ebb7e981817d03c87352892c394183dd70 Mon Sep 17 00:00:00 2001
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Date: Sat, 15 Feb 2025 12:30:44 +0000
Subject: [PATCH 49/59] Rustup to rustc 1.86.0-nightly (d8810e3e2 2025-02-14)
---
rust-toolchain | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rust-toolchain b/rust-toolchain
index c43450af694d..481903c6afb2 100644
--- a/rust-toolchain
+++ b/rust-toolchain
@@ -1,4 +1,4 @@
[toolchain]
-channel = "nightly-2025-02-14"
+channel = "nightly-2025-02-15"
components = ["rust-src", "rustc-dev", "llvm-tools"]
profile = "minimal"
From f065a5588eb6d417be3befdc3629ea2d559580f7 Mon Sep 17 00:00:00 2001
From: Alona Enraght-Moony
Date: Sat, 15 Feb 2025 13:07:44 +0000
Subject: [PATCH 50/59] triagebot.toml: ping me on changes to
`tests/rustdoc-json`
---
triagebot.toml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/triagebot.toml b/triagebot.toml
index 49cf1213987a..148fb723ed37 100644
--- a/triagebot.toml
+++ b/triagebot.toml
@@ -917,6 +917,9 @@ message = "This PR changes how LLVM is built. Consider updating src/bootstrap/do
[mentions."test/crashes"]
message = "This PR changes a file inside `tests/crashes`. If a crash was fixed, please move into the corresponding `ui` subdir and add 'Fixes #' to the PR description to autoclose the issue upon merge."
+[mentions."tests/rustdoc-json"]
+cc = ["@aDotInTheVoid"]
+
[mentions."tests/ui/deriving/deriving-all-codegen.stdout"]
message = "Changes to the code generated for builtin derived traits."
cc = ["@nnethercote"]
From 880d8c000086ab7b4c315d69eb35ab52cb7cd5bb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?=
<39484203+jieyouxu@users.noreply.github.com>
Date: Sat, 15 Feb 2025 18:42:45 +0800
Subject: [PATCH 51/59] compiletest: add `{ignore,only}-rustc_abi-x86-sse2`
directives
---
src/tools/compiletest/src/common.rs | 13 ++++++++++++-
src/tools/compiletest/src/directive-list.rs | 2 ++
src/tools/compiletest/src/header/cfg.rs | 8 ++++++++
src/tools/compiletest/src/header/tests.rs | 14 ++++++++++++++
4 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs
index cde4f7a665cb..1614c35cb1ce 100644
--- a/src/tools/compiletest/src/common.rs
+++ b/src/tools/compiletest/src/common.rs
@@ -517,6 +517,7 @@ pub struct TargetCfgs {
pub all_abis: HashSet,
pub all_families: HashSet,
pub all_pointer_widths: HashSet,
+ pub all_rustc_abis: HashSet,
}
impl TargetCfgs {
@@ -536,6 +537,9 @@ impl TargetCfgs {
let mut all_abis = HashSet::new();
let mut all_families = HashSet::new();
let mut all_pointer_widths = HashSet::new();
+ // NOTE: for distinction between `abi` and `rustc_abi`, see comment on
+ // `TargetCfg::rustc_abi`.
+ let mut all_rustc_abis = HashSet::new();
// If current target is not included in the `--print=all-target-specs-json` output,
// we check whether it is a custom target from the user or a synthetic target from bootstrap.
@@ -576,7 +580,9 @@ impl TargetCfgs {
all_families.insert(family.clone());
}
all_pointer_widths.insert(format!("{}bit", cfg.pointer_width));
-
+ if let Some(rustc_abi) = &cfg.rustc_abi {
+ all_rustc_abis.insert(rustc_abi.clone());
+ }
all_targets.insert(target.clone());
}
@@ -590,6 +596,7 @@ impl TargetCfgs {
all_abis,
all_families,
all_pointer_widths,
+ all_rustc_abis,
}
}
@@ -676,6 +683,10 @@ pub struct TargetCfg {
pub(crate) xray: bool,
#[serde(default = "default_reloc_model")]
pub(crate) relocation_model: String,
+ // NOTE: `rustc_abi` should not be confused with `abi`. `rustc_abi` was introduced in #137037 to
+ // make SSE2 *required* by the ABI (kind of a hack to make a target feature *required* via the
+ // target spec).
+ pub(crate) rustc_abi: Option,
// Not present in target cfg json output, additional derived information.
#[serde(skip)]
diff --git a/src/tools/compiletest/src/directive-list.rs b/src/tools/compiletest/src/directive-list.rs
index a7ac875d0a36..8c909bcb1952 100644
--- a/src/tools/compiletest/src/directive-list.rs
+++ b/src/tools/compiletest/src/directive-list.rs
@@ -87,6 +87,7 @@ const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
"ignore-remote",
"ignore-riscv64",
"ignore-rustc-debug-assertions",
+ "ignore-rustc_abi-x86-sse2",
"ignore-s390x",
"ignore-sgx",
"ignore-sparc64",
@@ -198,6 +199,7 @@ const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
"only-nvptx64",
"only-powerpc",
"only-riscv64",
+ "only-rustc_abi-x86-sse2",
"only-s390x",
"only-sparc",
"only-sparc64",
diff --git a/src/tools/compiletest/src/header/cfg.rs b/src/tools/compiletest/src/header/cfg.rs
index cfe51b5655f8..72a3b9d85c8c 100644
--- a/src/tools/compiletest/src/header/cfg.rs
+++ b/src/tools/compiletest/src/header/cfg.rs
@@ -234,6 +234,14 @@ fn parse_cfg_name_directive<'a>(
allowed_names: ["coverage-map", "coverage-run"],
message: "when the test mode is {name}",
}
+ condition! {
+ name: target_cfg.rustc_abi.as_ref().map(|abi| format!("rustc_abi-{abi}")).unwrap_or_default(),
+ allowed_names: ContainsPrefixed {
+ prefix: "rustc_abi-",
+ inner: target_cfgs.all_rustc_abis.clone(),
+ },
+ message: "when the target `rustc_abi` is {name}",
+ }
condition! {
name: "dist",
diff --git a/src/tools/compiletest/src/header/tests.rs b/src/tools/compiletest/src/header/tests.rs
index 522d340b678f..55292c46bba9 100644
--- a/src/tools/compiletest/src/header/tests.rs
+++ b/src/tools/compiletest/src/header/tests.rs
@@ -889,3 +889,17 @@ fn test_needs_target_has_atomic() {
assert!(!check_ignore(&config, "//@ needs-target-has-atomic: 8, ptr"));
assert!(check_ignore(&config, "//@ needs-target-has-atomic: 8, ptr, 128"));
}
+
+#[test]
+// FIXME: this test will fail against stage 0 until #137037 changes reach beta.
+#[cfg_attr(bootstrap, ignore)]
+fn test_rustc_abi() {
+ let config = cfg().target("i686-unknown-linux-gnu").build();
+ assert_eq!(config.target_cfg().rustc_abi, Some("x86-sse2".to_string()));
+ assert!(check_ignore(&config, "//@ ignore-rustc_abi-x86-sse2"));
+ assert!(!check_ignore(&config, "//@ only-rustc_abi-x86-sse2"));
+ let config = cfg().target("x86_64-unknown-linux-gnu").build();
+ assert_eq!(config.target_cfg().rustc_abi, None);
+ assert!(!check_ignore(&config, "//@ ignore-rustc_abi-x86-sse2"));
+ assert!(check_ignore(&config, "//@ only-rustc_abi-x86-sse2"));
+}
From d419da1a49a3298072c3659a0a7f9cc183f0f29e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?=
<39484203+jieyouxu@users.noreply.github.com>
Date: Sat, 15 Feb 2025 19:16:42 +0800
Subject: [PATCH 52/59] rustc-dev-guide: document
`{ignore,only}-rustc_abi-x86-sse2`
---
src/doc/rustc-dev-guide/src/tests/directives.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/doc/rustc-dev-guide/src/tests/directives.md b/src/doc/rustc-dev-guide/src/tests/directives.md
index b6209bcb2d80..00bb2bc4dbb1 100644
--- a/src/doc/rustc-dev-guide/src/tests/directives.md
+++ b/src/doc/rustc-dev-guide/src/tests/directives.md
@@ -154,6 +154,7 @@ Some examples of `X` in `ignore-X` or `only-X`:
`ignore-coverage-map`, `ignore-coverage-run`
- When testing a dist toolchain: `dist`
- This needs to be enabled with `COMPILETEST_ENABLE_DIST_TESTS=1`
+- The `rustc_abi` of the target: e.g. `rustc_abi-x86_64-sse2`
The following directives will check rustc build settings and target
settings:
From 9b6fd35738965ef3f246018fddc743b5e5cd8d2c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Le=C3=B3n=20Orell=20Valerian=20Liehr?=
Date: Wed, 10 Jul 2024 17:38:52 +0200
Subject: [PATCH 53/59] Reject macro calls inside of `#![crate_name]`
---
compiler/rustc_driver_impl/src/lib.rs | 10 +-
compiler/rustc_expand/src/module.rs | 12 +-
compiler/rustc_incremental/src/persist/fs.rs | 10 +-
.../rustc_incremental/src/persist/load.rs | 5 +-
compiler/rustc_interface/messages.ftl | 4 +
compiler/rustc_interface/src/errors.rs | 15 +++
compiler/rustc_interface/src/passes.rs | 107 ++++++++++++++----
compiler/rustc_interface/src/util.rs | 6 +-
compiler/rustc_session/messages.ftl | 4 -
compiler/rustc_session/src/errors.rs | 15 ---
compiler/rustc_session/src/output.rs | 56 +--------
tests/ui/attributes/crate-name-macro-call.rs | 6 +
.../attributes/crate-name-macro-call.stderr | 8 ++
...crate-name-request-malformed-crate-name.rs | 5 +
...e-name-request-malformed-crate-name.stderr | 8 ++
...le-names-request-malformed-crate-name-1.rs | 4 +
...ames-request-malformed-crate-name-1.stderr | 8 ++
...le-names-request-malformed-crate-name-2.rs | 7 ++
...ames-request-malformed-crate-name-2.stderr | 8 ++
...file-names-request-malformed-crate-name.rs | 5 +
...-names-request-malformed-crate-name.stderr | 8 ++
21 files changed, 196 insertions(+), 115 deletions(-)
create mode 100644 tests/ui/attributes/crate-name-macro-call.rs
create mode 100644 tests/ui/attributes/crate-name-macro-call.stderr
create mode 100644 tests/ui/invalid-compile-flags/print-crate-name-request-malformed-crate-name.rs
create mode 100644 tests/ui/invalid-compile-flags/print-crate-name-request-malformed-crate-name.stderr
create mode 100644 tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-1.rs
create mode 100644 tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-1.stderr
create mode 100644 tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-2.rs
create mode 100644 tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-2.stderr
create mode 100644 tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name.rs
create mode 100644 tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name.stderr
diff --git a/compiler/rustc_driver_impl/src/lib.rs b/compiler/rustc_driver_impl/src/lib.rs
index 2bcc33241dfa..a2ddff7183e6 100644
--- a/compiler/rustc_driver_impl/src/lib.rs
+++ b/compiler/rustc_driver_impl/src/lib.rs
@@ -667,11 +667,12 @@ fn print_crate_info(
return Compilation::Continue;
};
let t_outputs = rustc_interface::util::build_output_filenames(attrs, sess);
- let id = rustc_session::output::find_crate_name(sess, attrs);
+ let crate_name = passes::get_crate_name(sess, attrs);
let crate_types = collect_crate_types(sess, attrs);
for &style in &crate_types {
- let fname =
- rustc_session::output::filename_for_input(sess, style, id, &t_outputs);
+ let fname = rustc_session::output::filename_for_input(
+ sess, style, crate_name, &t_outputs,
+ );
println_info!("{}", fname.as_path().file_name().unwrap().to_string_lossy());
}
}
@@ -680,8 +681,7 @@ fn print_crate_info(
// no crate attributes, print out an error and exit
return Compilation::Continue;
};
- let id = rustc_session::output::find_crate_name(sess, attrs);
- println_info!("{id}");
+ println_info!("{}", passes::get_crate_name(sess, attrs));
}
Cfg => {
let mut cfgs = sess
diff --git a/compiler/rustc_expand/src/module.rs b/compiler/rustc_expand/src/module.rs
index 9c35b26772b6..e925052c6070 100644
--- a/compiler/rustc_expand/src/module.rs
+++ b/compiler/rustc_expand/src/module.rs
@@ -183,12 +183,12 @@ pub(crate) fn mod_file_path_from_attr(
let first_path = attrs.iter().find(|at| at.has_name(sym::path))?;
let Some(path_sym) = first_path.value_str() else {
// This check is here mainly to catch attempting to use a macro,
- // such as #[path = concat!(...)]. This isn't currently supported
- // because otherwise the InvocationCollector would need to defer
- // loading a module until the #[path] attribute was expanded, and
- // it doesn't support that (and would likely add a bit of
- // complexity). Usually bad forms are checked in AstValidator (via
- // `check_builtin_attribute`), but by the time that runs the macro
+ // such as `#[path = concat!(...)]`. This isn't supported because
+ // otherwise the `InvocationCollector` would need to defer loading
+ // a module until the `#[path]` attribute was expanded, and it
+ // doesn't support that (and would likely add a bit of complexity).
+ // Usually bad forms are checked during semantic analysis via
+ // `TyCtxt::check_mod_attrs`), but by the time that runs the macro
// is expanded, and it doesn't give an error.
validate_attr::emit_fatal_malformed_builtin_attribute(&sess.psess, first_path, sym::path);
};
diff --git a/compiler/rustc_incremental/src/persist/fs.rs b/compiler/rustc_incremental/src/persist/fs.rs
index 4ea171ab4a93..19cca48af612 100644
--- a/compiler/rustc_incremental/src/persist/fs.rs
+++ b/compiler/rustc_incremental/src/persist/fs.rs
@@ -117,8 +117,9 @@ use rustc_data_structures::{base_n, flock};
use rustc_fs_util::{LinkOrCopy, link_or_copy, try_canonicalize};
use rustc_middle::bug;
use rustc_session::config::CrateType;
-use rustc_session::output::{collect_crate_types, find_crate_name};
+use rustc_session::output::collect_crate_types;
use rustc_session::{Session, StableCrateId};
+use rustc_span::Symbol;
use tracing::debug;
use crate::errors;
@@ -211,7 +212,7 @@ pub fn in_incr_comp_dir(incr_comp_session_dir: &Path, file_name: &str) -> PathBu
/// The garbage collection will take care of it.
///
/// [`rustc_interface::queries::dep_graph`]: ../../rustc_interface/struct.Queries.html#structfield.dep_graph
-pub(crate) fn prepare_session_directory(sess: &Session) {
+pub(crate) fn prepare_session_directory(sess: &Session, crate_name: Symbol) {
if sess.opts.incremental.is_none() {
return;
}
@@ -221,7 +222,7 @@ pub(crate) fn prepare_session_directory(sess: &Session) {
debug!("prepare_session_directory");
// {incr-comp-dir}/{crate-name-and-disambiguator}
- let crate_dir = crate_path(sess);
+ let crate_dir = crate_path(sess, crate_name);
debug!("crate-dir: {}", crate_dir.display());
create_dir(sess, &crate_dir, "crate");
@@ -594,10 +595,9 @@ fn string_to_timestamp(s: &str) -> Result {
Ok(UNIX_EPOCH + duration)
}
-fn crate_path(sess: &Session) -> PathBuf {
+fn crate_path(sess: &Session, crate_name: Symbol) -> PathBuf {
let incr_dir = sess.opts.incremental.as_ref().unwrap().clone();
- let crate_name = find_crate_name(sess, &[]);
let crate_types = collect_crate_types(sess, &[]);
let stable_crate_id = StableCrateId::new(
crate_name,
diff --git a/compiler/rustc_incremental/src/persist/load.rs b/compiler/rustc_incremental/src/persist/load.rs
index 48df84f3d099..7977bcc68911 100644
--- a/compiler/rustc_incremental/src/persist/load.rs
+++ b/compiler/rustc_incremental/src/persist/load.rs
@@ -11,6 +11,7 @@ use rustc_serialize::Decodable;
use rustc_serialize::opaque::MemDecoder;
use rustc_session::Session;
use rustc_session::config::IncrementalStateAssertion;
+use rustc_span::Symbol;
use tracing::{debug, warn};
use super::data::*;
@@ -203,9 +204,9 @@ pub fn load_query_result_cache(sess: &Session) -> Option {
/// Setups the dependency graph by loading an existing graph from disk and set up streaming of a
/// new graph to an incremental session directory.
-pub fn setup_dep_graph(sess: &Session) -> DepGraph {
+pub fn setup_dep_graph(sess: &Session, crate_name: Symbol) -> DepGraph {
// `load_dep_graph` can only be called after `prepare_session_directory`.
- prepare_session_directory(sess);
+ prepare_session_directory(sess, crate_name);
let res = sess.opts.build_dep_graph().then(|| load_dep_graph(sess));
diff --git a/compiler/rustc_interface/messages.ftl b/compiler/rustc_interface/messages.ftl
index 31123625369b..43c69c8e5718 100644
--- a/compiler/rustc_interface/messages.ftl
+++ b/compiler/rustc_interface/messages.ftl
@@ -6,6 +6,10 @@ interface_abi_required_feature_issue = for more information, see issue #116344 <
interface_cant_emit_mir =
could not emit MIR: {$error}
+interface_crate_name_does_not_match = `--crate-name` and `#[crate_name]` are required to match, but `{$crate_name}` != `{$attr_crate_name}`
+
+interface_crate_name_invalid = crate names cannot start with a `-`, but `{$crate_name}` has a leading hyphen
+
interface_emoji_identifier =
identifiers cannot contain emoji: `{$ident}`
diff --git a/compiler/rustc_interface/src/errors.rs b/compiler/rustc_interface/src/errors.rs
index b62950d67096..c3b858d4f2ec 100644
--- a/compiler/rustc_interface/src/errors.rs
+++ b/compiler/rustc_interface/src/errors.rs
@@ -4,6 +4,21 @@ use std::path::Path;
use rustc_macros::Diagnostic;
use rustc_span::{Span, Symbol};
+#[derive(Diagnostic)]
+#[diag(interface_crate_name_does_not_match)]
+pub(crate) struct CrateNameDoesNotMatch {
+ #[primary_span]
+ pub(crate) span: Span,
+ pub(crate) crate_name: Symbol,
+ pub(crate) attr_crate_name: Symbol,
+}
+
+#[derive(Diagnostic)]
+#[diag(interface_crate_name_invalid)]
+pub(crate) struct CrateNameInvalid<'a> {
+ pub(crate) crate_name: &'a str,
+}
+
#[derive(Diagnostic)]
#[diag(interface_ferris_identifier)]
pub struct FerrisIdentifier {
diff --git a/compiler/rustc_interface/src/passes.rs b/compiler/rustc_interface/src/passes.rs
index e5adcdb244f6..fcebca3ecc91 100644
--- a/compiler/rustc_interface/src/passes.rs
+++ b/compiler/rustc_interface/src/passes.rs
@@ -28,10 +28,12 @@ use rustc_passes::{abi_test, input_stats, layout_test};
use rustc_resolve::Resolver;
use rustc_session::config::{CrateType, Input, OutFileName, OutputFilenames, OutputType};
use rustc_session::cstore::Untracked;
-use rustc_session::output::{collect_crate_types, filename_for_input, find_crate_name};
+use rustc_session::output::{collect_crate_types, filename_for_input};
use rustc_session::search_paths::PathKind;
use rustc_session::{Limit, Session};
-use rustc_span::{ErrorGuaranteed, FileName, SourceFileHash, SourceFileHashAlgorithm, Symbol, sym};
+use rustc_span::{
+ ErrorGuaranteed, FileName, SourceFileHash, SourceFileHashAlgorithm, Span, Symbol, sym,
+};
use rustc_target::spec::PanicStrategy;
use rustc_trait_selection::traits;
use tracing::{info, instrument};
@@ -725,8 +727,7 @@ pub fn create_and_enter_global_ctxt FnOnce(TyCtxt<'tcx>) -> T>(
let pre_configured_attrs = rustc_expand::config::pre_configure_attrs(sess, &krate.attrs);
- // parse `#[crate_name]` even if `--crate-name` was passed, to make sure it matches.
- let crate_name = find_crate_name(sess, &pre_configured_attrs);
+ let crate_name = get_crate_name(sess, &pre_configured_attrs);
let crate_types = collect_crate_types(sess, &pre_configured_attrs);
let stable_crate_id = StableCrateId::new(
crate_name,
@@ -735,7 +736,7 @@ pub fn create_and_enter_global_ctxt FnOnce(TyCtxt<'tcx>) -> T>(
sess.cfg_version,
);
let outputs = util::build_output_filenames(&pre_configured_attrs, sess);
- let dep_graph = setup_dep_graph(sess);
+ let dep_graph = setup_dep_graph(sess, crate_name);
let cstore =
FreezeLock::new(Box::new(CStore::new(compiler.codegen_backend.metadata_loader())) as _);
@@ -1080,23 +1081,85 @@ pub(crate) fn start_codegen<'tcx>(
codegen
}
-fn get_recursion_limit(krate_attrs: &[ast::Attribute], sess: &Session) -> Limit {
- if let Some(attr) = krate_attrs
- .iter()
- .find(|attr| attr.has_name(sym::recursion_limit) && attr.value_str().is_none())
- {
- // This is here mainly to check for using a macro, such as
- // #![recursion_limit = foo!()]. That is not supported since that
- // would require expanding this while in the middle of expansion,
- // which needs to know the limit before expanding. Otherwise,
- // validation would normally be caught in AstValidator (via
- // `check_builtin_attribute`), but by the time that runs the macro
- // is expanded, and it doesn't give an error.
- validate_attr::emit_fatal_malformed_builtin_attribute(
- &sess.psess,
- attr,
- sym::recursion_limit,
- );
+/// Compute and validate the crate name.
+pub fn get_crate_name(sess: &Session, krate_attrs: &[ast::Attribute]) -> Symbol {
+ // We validate *all* occurrences of `#![crate_name]`, pick the first find and
+ // if a crate name was passed on the command line via `--crate-name` we enforce
+ // that they match.
+ // We perform the validation step here instead of later to ensure it gets run
+ // in all code paths that require the crate name very early on, namely before
+ // macro expansion.
+
+ let attr_crate_name =
+ validate_and_find_value_str_builtin_attr(sym::crate_name, sess, krate_attrs);
+
+ let validate = |name, span| {
+ rustc_session::output::validate_crate_name(sess, name, span);
+ name
+ };
+
+ if let Some(crate_name) = &sess.opts.crate_name {
+ let crate_name = Symbol::intern(crate_name);
+ if let Some((attr_crate_name, span)) = attr_crate_name
+ && attr_crate_name != crate_name
+ {
+ sess.dcx().emit_err(errors::CrateNameDoesNotMatch {
+ span,
+ crate_name,
+ attr_crate_name,
+ });
+ }
+ return validate(crate_name, None);
}
+
+ if let Some((crate_name, span)) = attr_crate_name {
+ return validate(crate_name, Some(span));
+ }
+
+ if let Input::File(ref path) = sess.io.input
+ && let Some(file_stem) = path.file_stem().and_then(|s| s.to_str())
+ {
+ if file_stem.starts_with('-') {
+ sess.dcx().emit_err(errors::CrateNameInvalid { crate_name: file_stem });
+ } else {
+ return validate(Symbol::intern(&file_stem.replace('-', "_")), None);
+ }
+ }
+
+ sym::rust_out
+}
+
+fn get_recursion_limit(krate_attrs: &[ast::Attribute], sess: &Session) -> Limit {
+ // We don't permit macro calls inside of the attribute (e.g., #![recursion_limit = `expand!()`])
+ // because that would require expanding this while in the middle of expansion, which needs to
+ // know the limit before expanding.
+ let _ = validate_and_find_value_str_builtin_attr(sym::recursion_limit, sess, krate_attrs);
rustc_middle::middle::limits::get_recursion_limit(krate_attrs, sess)
}
+
+/// Validate *all* occurrences of the given "[value-str]" built-in attribute and return the first find.
+///
+/// This validator is intended for built-in attributes whose value needs to be known very early
+/// during compilation (namely, before macro expansion) and it mainly exists to reject macro calls
+/// inside of the attributes, such as in `#![name = expand!()]`. Normal attribute validation happens
+/// during semantic analysis via [`TyCtxt::check_mod_attrs`] which happens *after* macro expansion
+/// when such macro calls (here: `expand`) have already been expanded and we can no longer check for
+/// their presence.
+///
+/// [value-str]: ast::Attribute::value_str
+fn validate_and_find_value_str_builtin_attr(
+ name: Symbol,
+ sess: &Session,
+ krate_attrs: &[ast::Attribute],
+) -> Option<(Symbol, Span)> {
+ let mut result = None;
+ // Validate *all* relevant attributes, not just the first occurrence.
+ for attr in ast::attr::filter_by_name(krate_attrs, name) {
+ let Some(value) = attr.value_str() else {
+ validate_attr::emit_fatal_malformed_builtin_attribute(&sess.psess, attr, name)
+ };
+ // Choose the first occurrence as our result.
+ result.get_or_insert((value, attr.span));
+ }
+ result
+}
diff --git a/compiler/rustc_interface/src/util.rs b/compiler/rustc_interface/src/util.rs
index e900ec14fcab..bc2aae7cd87e 100644
--- a/compiler/rustc_interface/src/util.rs
+++ b/compiler/rustc_interface/src/util.rs
@@ -433,11 +433,11 @@ pub(crate) fn check_attr_crate_type(
}
} else {
// This is here mainly to check for using a macro, such as
- // #![crate_type = foo!()]. That is not supported since the
+ // `#![crate_type = foo!()]`. That is not supported since the
// crate type needs to be known very early in compilation long
// before expansion. Otherwise, validation would normally be
- // caught in AstValidator (via `check_builtin_attribute`), but
- // by the time that runs the macro is expanded, and it doesn't
+ // caught during semantic analysis via `TyCtxt::check_mod_attrs`,
+ // but by the time that runs the macro is expanded, and it doesn't
// give an error.
validate_attr::emit_fatal_malformed_builtin_attribute(
&sess.psess,
diff --git a/compiler/rustc_session/messages.ftl b/compiler/rustc_session/messages.ftl
index f108488cd582..74b8087e0776 100644
--- a/compiler/rustc_session/messages.ftl
+++ b/compiler/rustc_session/messages.ftl
@@ -8,12 +8,8 @@ session_cannot_mix_and_match_sanitizers = `-Zsanitizer={$first}` is incompatible
session_cli_feature_diagnostic_help =
add `-Zcrate-attr="feature({$feature})"` to the command-line options to enable
-session_crate_name_does_not_match = `--crate-name` and `#[crate_name]` are required to match, but `{$crate_name}` != `{$attr_crate_name}`
-
session_crate_name_empty = crate name must not be empty
-session_crate_name_invalid = crate names cannot start with a `-`, but `{$s}` has a leading hyphen
-
session_embed_source_insufficient_dwarf_version = `-Zembed-source=y` requires at least `-Z dwarf-version=5` but DWARF version is {$dwarf_version}
session_embed_source_requires_debug_info = `-Zembed-source=y` requires debug information to be enabled
diff --git a/compiler/rustc_session/src/errors.rs b/compiler/rustc_session/src/errors.rs
index b57560ff7822..71d8dbe44fed 100644
--- a/compiler/rustc_session/src/errors.rs
+++ b/compiler/rustc_session/src/errors.rs
@@ -212,21 +212,6 @@ pub(crate) struct FileWriteFail<'a> {
pub(crate) err: String,
}
-#[derive(Diagnostic)]
-#[diag(session_crate_name_does_not_match)]
-pub(crate) struct CrateNameDoesNotMatch {
- #[primary_span]
- pub(crate) span: Span,
- pub(crate) crate_name: Symbol,
- pub(crate) attr_crate_name: Symbol,
-}
-
-#[derive(Diagnostic)]
-#[diag(session_crate_name_invalid)]
-pub(crate) struct CrateNameInvalid<'a> {
- pub(crate) s: &'a str,
-}
-
#[derive(Diagnostic)]
#[diag(session_crate_name_empty)]
pub(crate) struct CrateNameEmpty {
diff --git a/compiler/rustc_session/src/output.rs b/compiler/rustc_session/src/output.rs
index a6d4ebf23c70..b37a80274c0c 100644
--- a/compiler/rustc_session/src/output.rs
+++ b/compiler/rustc_session/src/output.rs
@@ -2,15 +2,12 @@
use std::path::Path;
-use rustc_ast::{self as ast, attr};
+use rustc_ast as ast;
use rustc_span::{Span, Symbol, sym};
use crate::Session;
-use crate::config::{self, CrateType, Input, OutFileName, OutputFilenames, OutputType};
-use crate::errors::{
- self, CrateNameDoesNotMatch, CrateNameEmpty, CrateNameInvalid, FileIsNotWriteable,
- InvalidCharacterInCrateName,
-};
+use crate::config::{self, CrateType, OutFileName, OutputFilenames, OutputType};
+use crate::errors::{self, CrateNameEmpty, FileIsNotWriteable, InvalidCharacterInCrateName};
pub fn out_filename(
sess: &Session,
@@ -49,53 +46,6 @@ fn is_writeable(p: &Path) -> bool {
}
}
-/// Find and [validate] the crate name.
-///
-/// [validate]: validate_crate_name
-pub fn find_crate_name(sess: &Session, attrs: &[ast::Attribute]) -> Symbol {
- let validate = |name, span| {
- validate_crate_name(sess, name, span);
- name
- };
-
- // Look in attributes 100% of the time to make sure the attribute is marked
- // as used. After doing this, however, we still prioritize a crate name from
- // the command line over one found in the #[crate_name] attribute. If we
- // find both we ensure that they're the same later on as well.
- let attr_crate_name =
- attr::find_by_name(attrs, sym::crate_name).and_then(|at| at.value_str().map(|s| (at, s)));
-
- if let Some(crate_name) = &sess.opts.crate_name {
- let crate_name = Symbol::intern(crate_name);
- if let Some((attr, attr_crate_name)) = attr_crate_name
- && attr_crate_name != crate_name
- {
- sess.dcx().emit_err(CrateNameDoesNotMatch {
- span: attr.span,
- crate_name,
- attr_crate_name,
- });
- }
- return validate(crate_name, None);
- }
-
- if let Some((attr, crate_name)) = attr_crate_name {
- return validate(crate_name, Some(attr.span));
- }
-
- if let Input::File(ref path) = sess.io.input
- && let Some(s) = path.file_stem().and_then(|s| s.to_str())
- {
- if s.starts_with('-') {
- sess.dcx().emit_err(CrateNameInvalid { s });
- } else {
- return validate(Symbol::intern(&s.replace('-', "_")), None);
- }
- }
-
- sym::rust_out
-}
-
/// Validate the given crate name.
///
/// Note that this validation is more permissive than identifier parsing. It considers
diff --git a/tests/ui/attributes/crate-name-macro-call.rs b/tests/ui/attributes/crate-name-macro-call.rs
new file mode 100644
index 000000000000..1aae2e506e29
--- /dev/null
+++ b/tests/ui/attributes/crate-name-macro-call.rs
@@ -0,0 +1,6 @@
+// issue: rust-lang/rust#122001
+// Ensure we reject macro calls inside `#![crate_name]` as their result wouldn't get honored anyway.
+
+#![crate_name = concat!("my", "crate")] //~ ERROR malformed `crate_name` attribute input
+
+fn main() {}
diff --git a/tests/ui/attributes/crate-name-macro-call.stderr b/tests/ui/attributes/crate-name-macro-call.stderr
new file mode 100644
index 000000000000..ab562b41a31f
--- /dev/null
+++ b/tests/ui/attributes/crate-name-macro-call.stderr
@@ -0,0 +1,8 @@
+error: malformed `crate_name` attribute input
+ --> $DIR/crate-name-macro-call.rs:4:1
+ |
+LL | #![crate_name = concat!("my", "crate")]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: must be of the form: `#![crate_name = "name"]`
+
+error: aborting due to 1 previous error
+
diff --git a/tests/ui/invalid-compile-flags/print-crate-name-request-malformed-crate-name.rs b/tests/ui/invalid-compile-flags/print-crate-name-request-malformed-crate-name.rs
new file mode 100644
index 000000000000..c7f3c2c5403d
--- /dev/null
+++ b/tests/ui/invalid-compile-flags/print-crate-name-request-malformed-crate-name.rs
@@ -0,0 +1,5 @@
+// Ensure we validate `#![crate_name]` on print requests and reject macro calls inside of it.
+// See also .
+
+//@ compile-flags: --print=crate-name
+#![crate_name = concat!("wrapped")] //~ ERROR malformed `crate_name` attribute input
diff --git a/tests/ui/invalid-compile-flags/print-crate-name-request-malformed-crate-name.stderr b/tests/ui/invalid-compile-flags/print-crate-name-request-malformed-crate-name.stderr
new file mode 100644
index 000000000000..6bf09a2b1317
--- /dev/null
+++ b/tests/ui/invalid-compile-flags/print-crate-name-request-malformed-crate-name.stderr
@@ -0,0 +1,8 @@
+error: malformed `crate_name` attribute input
+ --> $DIR/print-crate-name-request-malformed-crate-name.rs:5:1
+ |
+LL | #![crate_name = concat!("wrapped")]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: must be of the form: `#![crate_name = "name"]`
+
+error: aborting due to 1 previous error
+
diff --git a/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-1.rs b/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-1.rs
new file mode 100644
index 000000000000..5cf1ae36b42b
--- /dev/null
+++ b/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-1.rs
@@ -0,0 +1,4 @@
+// Ensure we validate `#![crate_name]` on print requests.
+
+//@ compile-flags: --print=file-names
+#![crate_name] //~ ERROR malformed `crate_name` attribute input
diff --git a/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-1.stderr b/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-1.stderr
new file mode 100644
index 000000000000..de62aed79fce
--- /dev/null
+++ b/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-1.stderr
@@ -0,0 +1,8 @@
+error: malformed `crate_name` attribute input
+ --> $DIR/print-file-names-request-malformed-crate-name-1.rs:4:1
+ |
+LL | #![crate_name]
+ | ^^^^^^^^^^^^^^ help: must be of the form: `#![crate_name = "name"]`
+
+error: aborting due to 1 previous error
+
diff --git a/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-2.rs b/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-2.rs
new file mode 100644
index 000000000000..13c9d1e00273
--- /dev/null
+++ b/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-2.rs
@@ -0,0 +1,7 @@
+// Ensure that we validate *all* `#![crate_name]`s on print requests, not just the first,
+// and that we reject macro calls inside of them.
+// See also .
+
+//@ compile-flags: --print=file-names
+#![crate_name = "this_one_is_okay"]
+#![crate_name = concat!("this_one_is_not")] //~ ERROR malformed `crate_name` attribute input
diff --git a/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-2.stderr b/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-2.stderr
new file mode 100644
index 000000000000..42c33de12210
--- /dev/null
+++ b/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name-2.stderr
@@ -0,0 +1,8 @@
+error: malformed `crate_name` attribute input
+ --> $DIR/print-file-names-request-malformed-crate-name-2.rs:7:1
+ |
+LL | #![crate_name = concat!("this_one_is_not")]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: must be of the form: `#![crate_name = "name"]`
+
+error: aborting due to 1 previous error
+
diff --git a/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name.rs b/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name.rs
new file mode 100644
index 000000000000..5fe8bd7945f4
--- /dev/null
+++ b/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name.rs
@@ -0,0 +1,5 @@
+// Ensure we validate `#![crate_name]` on print requests and reject macro calls inside of it.
+// See also .
+
+//@ compile-flags: --print=file-names
+#![crate_name = concat!("wrapped")] //~ ERROR malformed `crate_name` attribute input
diff --git a/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name.stderr b/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name.stderr
new file mode 100644
index 000000000000..cb5ffaab9ca2
--- /dev/null
+++ b/tests/ui/invalid-compile-flags/print-file-names-request-malformed-crate-name.stderr
@@ -0,0 +1,8 @@
+error: malformed `crate_name` attribute input
+ --> $DIR/print-file-names-request-malformed-crate-name.rs:5:1
+ |
+LL | #![crate_name = concat!("wrapped")]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: must be of the form: `#![crate_name = "name"]`
+
+error: aborting due to 1 previous error
+
From 313e8526dc81ec5de6586775f0b0ea8d73790497 Mon Sep 17 00:00:00 2001
From: Ralf Jung
Date: Sat, 15 Feb 2025 20:02:16 +0100
Subject: [PATCH 54/59] abi_unsupported_vector_types: say which type is the
problem
---
compiler/rustc_monomorphize/messages.ftl | 8 ++--
compiler/rustc_monomorphize/src/errors.rs | 9 +++-
.../src/mono_checks/abi_check.rs | 18 ++++----
tests/ui/simd-abi-checks-empty-list.rs | 2 +-
tests/ui/simd-abi-checks-empty-list.stderr | 4 +-
tests/ui/simd-abi-checks-s390x.rs | 20 ++++-----
tests/ui/simd-abi-checks-s390x.z10.stderr | 40 ++++++++---------
...simd-abi-checks-s390x.z13_no_vector.stderr | 40 ++++++++---------
...imd-abi-checks-s390x.z13_soft_float.stderr | 40 ++++++++---------
tests/ui/simd-abi-checks.rs | 22 +++++-----
tests/ui/simd-abi-checks.stderr | 44 +++++++++----------
tests/ui/sse-abi-checks.rs | 2 +-
tests/ui/sse-abi-checks.stderr | 4 +-
13 files changed, 129 insertions(+), 124 deletions(-)
diff --git a/compiler/rustc_monomorphize/messages.ftl b/compiler/rustc_monomorphize/messages.ftl
index 540ce7cc4ce3..463c42b69b1a 100644
--- a/compiler/rustc_monomorphize/messages.ftl
+++ b/compiler/rustc_monomorphize/messages.ftl
@@ -1,17 +1,17 @@
monomorphize_abi_error_disabled_vector_type_call =
- this function call uses a SIMD vector type that (with the chosen ABI) requires the `{$required_feature}` target feature, which is not enabled in the caller
+ this function call uses SIMD vector type `{$ty}` which (with the chosen ABI) requires the `{$required_feature}` target feature, which is not enabled in the caller
.label = function called here
.help = consider enabling it globally (`-C target-feature=+{$required_feature}`) or locally (`#[target_feature(enable="{$required_feature}")]`)
monomorphize_abi_error_disabled_vector_type_def =
- this function definition uses a SIMD vector type that (with the chosen ABI) requires the `{$required_feature}` target feature, which is not enabled
+ this function definition uses SIMD vector type `{$ty}` which (with the chosen ABI) requires the `{$required_feature}` target feature, which is not enabled
.label = function defined here
.help = consider enabling it globally (`-C target-feature=+{$required_feature}`) or locally (`#[target_feature(enable="{$required_feature}")]`)
monomorphize_abi_error_unsupported_vector_type_call =
- this function call uses a SIMD vector type that is not currently supported with the chosen ABI
+ this function call uses SIMD vector type `{$ty}` which is not currently supported with the chosen ABI
.label = function called here
monomorphize_abi_error_unsupported_vector_type_def =
- this function definition uses a SIMD vector type that is not currently supported with the chosen ABI
+ this function definition uses SIMD vector type `{$ty}` which is not currently supported with the chosen ABI
.label = function defined here
monomorphize_couldnt_dump_mono_stats =
diff --git a/compiler/rustc_monomorphize/src/errors.rs b/compiler/rustc_monomorphize/src/errors.rs
index fc8d63b58881..75687a80b82a 100644
--- a/compiler/rustc_monomorphize/src/errors.rs
+++ b/compiler/rustc_monomorphize/src/errors.rs
@@ -1,6 +1,7 @@
use std::path::PathBuf;
use rustc_macros::{Diagnostic, LintDiagnostic};
+use rustc_middle::ty::Ty;
use rustc_span::{Span, Symbol};
#[derive(Diagnostic)]
@@ -75,6 +76,7 @@ pub(crate) struct AbiErrorDisabledVectorTypeDef<'a> {
#[label]
pub span: Span,
pub required_feature: &'a str,
+ pub ty: Ty<'a>,
}
#[derive(LintDiagnostic)]
@@ -84,18 +86,21 @@ pub(crate) struct AbiErrorDisabledVectorTypeCall<'a> {
#[label]
pub span: Span,
pub required_feature: &'a str,
+ pub ty: Ty<'a>,
}
#[derive(LintDiagnostic)]
#[diag(monomorphize_abi_error_unsupported_vector_type_def)]
-pub(crate) struct AbiErrorUnsupportedVectorTypeDef {
+pub(crate) struct AbiErrorUnsupportedVectorTypeDef<'a> {
#[label]
pub span: Span,
+ pub ty: Ty<'a>,
}
#[derive(LintDiagnostic)]
#[diag(monomorphize_abi_error_unsupported_vector_type_call)]
-pub(crate) struct AbiErrorUnsupportedVectorTypeCall {
+pub(crate) struct AbiErrorUnsupportedVectorTypeCall<'a> {
#[label]
pub span: Span,
+ pub ty: Ty<'a>,
}
diff --git a/compiler/rustc_monomorphize/src/mono_checks/abi_check.rs b/compiler/rustc_monomorphize/src/mono_checks/abi_check.rs
index a0be7f11d709..36cd3e00b76c 100644
--- a/compiler/rustc_monomorphize/src/mono_checks/abi_check.rs
+++ b/compiler/rustc_monomorphize/src/mono_checks/abi_check.rs
@@ -34,7 +34,7 @@ fn do_check_abi<'tcx>(
tcx: TyCtxt<'tcx>,
abi: &FnAbi<'tcx, Ty<'tcx>>,
target_feature_def: DefId,
- mut emit_err: impl FnMut(Option<&'static str>),
+ mut emit_err: impl FnMut(Ty<'tcx>, Option<&'static str>),
) {
let feature_def = tcx.sess.target.features_for_correct_vector_abi();
let codegen_attrs = tcx.codegen_fn_attrs(target_feature_def);
@@ -45,7 +45,7 @@ fn do_check_abi<'tcx>(
let feature = match feature_def.iter().find(|(bits, _)| size.bits() <= *bits) {
Some((_, feature)) => feature,
None => {
- emit_err(None);
+ emit_err(arg_abi.layout.ty, None);
continue;
}
};
@@ -53,7 +53,7 @@ fn do_check_abi<'tcx>(
if !tcx.sess.unstable_target_features.contains(&feature_sym)
&& !codegen_attrs.target_features.iter().any(|x| x.name == feature_sym)
{
- emit_err(Some(&feature));
+ emit_err(arg_abi.layout.ty, Some(&feature));
}
}
}
@@ -69,21 +69,21 @@ fn check_instance_abi<'tcx>(tcx: TyCtxt<'tcx>, instance: Instance<'tcx>) {
// function.
return;
};
- do_check_abi(tcx, abi, instance.def_id(), |required_feature| {
+ do_check_abi(tcx, abi, instance.def_id(), |ty, required_feature| {
let span = tcx.def_span(instance.def_id());
if let Some(required_feature) = required_feature {
tcx.emit_node_span_lint(
ABI_UNSUPPORTED_VECTOR_TYPES,
CRATE_HIR_ID,
span,
- AbiErrorDisabledVectorTypeDef { span, required_feature },
+ AbiErrorDisabledVectorTypeDef { span, required_feature, ty },
);
} else {
tcx.emit_node_span_lint(
ABI_UNSUPPORTED_VECTOR_TYPES,
CRATE_HIR_ID,
span,
- AbiErrorUnsupportedVectorTypeDef { span },
+ AbiErrorUnsupportedVectorTypeDef { span, ty },
);
}
})
@@ -123,20 +123,20 @@ fn check_call_site_abi<'tcx>(
// ABI failed to compute; this will not get through codegen.
return;
};
- do_check_abi(tcx, callee_abi, caller.def_id(), |required_feature| {
+ do_check_abi(tcx, callee_abi, caller.def_id(), |ty, required_feature| {
if let Some(required_feature) = required_feature {
tcx.emit_node_span_lint(
ABI_UNSUPPORTED_VECTOR_TYPES,
CRATE_HIR_ID,
span,
- AbiErrorDisabledVectorTypeCall { span, required_feature },
+ AbiErrorDisabledVectorTypeCall { span, required_feature, ty },
);
} else {
tcx.emit_node_span_lint(
ABI_UNSUPPORTED_VECTOR_TYPES,
CRATE_HIR_ID,
span,
- AbiErrorUnsupportedVectorTypeCall { span },
+ AbiErrorUnsupportedVectorTypeCall { span, ty },
);
}
});
diff --git a/tests/ui/simd-abi-checks-empty-list.rs b/tests/ui/simd-abi-checks-empty-list.rs
index c1785051e5a5..fd4957b5b939 100644
--- a/tests/ui/simd-abi-checks-empty-list.rs
+++ b/tests/ui/simd-abi-checks-empty-list.rs
@@ -15,5 +15,5 @@ trait Copy {}
pub struct SimdVec([i32; 4]);
pub extern "C" fn pass_by_vec(_: SimdVec) {}
-//~^ this function definition uses a SIMD vector type that is not currently supported with the chosen ABI
+//~^ this function definition uses SIMD vector type `SimdVec` which is not currently supported with the chosen ABI
//~| WARNING this was previously accepted by the compiler
diff --git a/tests/ui/simd-abi-checks-empty-list.stderr b/tests/ui/simd-abi-checks-empty-list.stderr
index c49fe1a01de5..91c61884fd02 100644
--- a/tests/ui/simd-abi-checks-empty-list.stderr
+++ b/tests/ui/simd-abi-checks-empty-list.stderr
@@ -1,4 +1,4 @@
-warning: this function definition uses a SIMD vector type that is not currently supported with the chosen ABI
+warning: this function definition uses SIMD vector type `SimdVec` which is not currently supported with the chosen ABI
--> $DIR/simd-abi-checks-empty-list.rs:17:1
|
LL | pub extern "C" fn pass_by_vec(_: SimdVec) {}
@@ -11,7 +11,7 @@ LL | pub extern "C" fn pass_by_vec(_: SimdVec) {}
warning: 1 warning emitted
Future incompatibility report: Future breakage diagnostic:
-warning: this function definition uses a SIMD vector type that is not currently supported with the chosen ABI
+warning: this function definition uses SIMD vector type `SimdVec` which is not currently supported with the chosen ABI
--> $DIR/simd-abi-checks-empty-list.rs:17:1
|
LL | pub extern "C" fn pass_by_vec(_: SimdVec) {}
diff --git a/tests/ui/simd-abi-checks-s390x.rs b/tests/ui/simd-abi-checks-s390x.rs
index 15df66a2ceda..7e408f665614 100644
--- a/tests/ui/simd-abi-checks-s390x.rs
+++ b/tests/ui/simd-abi-checks-s390x.rs
@@ -44,13 +44,13 @@ impl Copy for TransparentWrapper {}
#[no_mangle]
extern "C" fn vector_ret_small(x: &i8x8) -> i8x8 {
- //~^ ERROR this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+ //~^ ERROR requires the `vector` target feature, which is not enabled
//~^^ WARN this was previously accepted
*x
}
#[no_mangle]
extern "C" fn vector_ret(x: &i8x16) -> i8x16 {
- //~^ ERROR this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+ //~^ ERROR requires the `vector` target feature, which is not enabled
//~^^ WARN this was previously accepted
*x
}
@@ -99,7 +99,7 @@ extern "C" fn vector_wrapper_ret_large(x: &Wrapper) -> Wrapper {
extern "C" fn vector_transparent_wrapper_ret_small(
x: &TransparentWrapper,
) -> TransparentWrapper {
- //~^^^ ERROR this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+ //~^^^ ERROR requires the `vector` target feature, which is not enabled
//~^^^^ WARN this was previously accepted
*x
}
@@ -107,7 +107,7 @@ extern "C" fn vector_transparent_wrapper_ret_small(
extern "C" fn vector_transparent_wrapper_ret(
x: &TransparentWrapper,
) -> TransparentWrapper {
- //~^^^ ERROR this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+ //~^^^ ERROR requires the `vector` target feature, which is not enabled
//~^^^^ WARN this was previously accepted
*x
}
@@ -121,13 +121,13 @@ extern "C" fn vector_transparent_wrapper_ret_large(
#[no_mangle]
extern "C" fn vector_arg_small(x: i8x8) -> i64 {
- //~^ ERROR this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+ //~^ ERROR requires the `vector` target feature, which is not enabled
//~^^ WARN this was previously accepted
unsafe { *(&x as *const i8x8 as *const i64) }
}
#[no_mangle]
extern "C" fn vector_arg(x: i8x16) -> i64 {
- //~^ ERROR this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+ //~^ ERROR requires the `vector` target feature, which is not enabled
//~^^ WARN this was previously accepted
unsafe { *(&x as *const i8x16 as *const i64) }
}
@@ -139,13 +139,13 @@ extern "C" fn vector_arg_large(x: i8x32) -> i64 {
#[no_mangle]
extern "C" fn vector_wrapper_arg_small(x: Wrapper) -> i64 {
- //~^ ERROR this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+ //~^ ERROR requires the `vector` target feature, which is not enabled
//~^^ WARN this was previously accepted
unsafe { *(&x as *const Wrapper as *const i64) }
}
#[no_mangle]
extern "C" fn vector_wrapper_arg(x: Wrapper) -> i64 {
- //~^ ERROR this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+ //~^ ERROR requires the `vector` target feature, which is not enabled
//~^^ WARN this was previously accepted
unsafe { *(&x as *const Wrapper as *const i64) }
}
@@ -157,13 +157,13 @@ extern "C" fn vector_wrapper_arg_large(x: Wrapper) -> i64 {
#[no_mangle]
extern "C" fn vector_transparent_wrapper_arg_small(x: TransparentWrapper) -> i64 {
- //~^ ERROR this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+ //~^ ERROR requires the `vector` target feature, which is not enabled
//~^^ WARN this was previously accepted
unsafe { *(&x as *const TransparentWrapper as *const i64) }
}
#[no_mangle]
extern "C" fn vector_transparent_wrapper_arg(x: TransparentWrapper) -> i64 {
- //~^ ERROR this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+ //~^ ERROR requires the `vector` target feature, which is not enabled
//~^^ WARN this was previously accepted
unsafe { *(&x as *const TransparentWrapper as *const i64) }
}
diff --git a/tests/ui/simd-abi-checks-s390x.z10.stderr b/tests/ui/simd-abi-checks-s390x.z10.stderr
index cf135afb428f..ab97299e84a7 100644
--- a/tests/ui/simd-abi-checks-s390x.z10.stderr
+++ b/tests/ui/simd-abi-checks-s390x.z10.stderr
@@ -1,4 +1,4 @@
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x8` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:46:1
|
LL | extern "C" fn vector_ret_small(x: &i8x8) -> i8x8 {
@@ -13,7 +13,7 @@ note: the lint level is defined here
LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x16` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:52:1
|
LL | extern "C" fn vector_ret(x: &i8x16) -> i8x16 {
@@ -23,7 +23,7 @@ LL | extern "C" fn vector_ret(x: &i8x16) -> i8x16 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:99:1
|
LL | / extern "C" fn vector_transparent_wrapper_ret_small(
@@ -35,7 +35,7 @@ LL | | ) -> TransparentWrapper {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:107:1
|
LL | / extern "C" fn vector_transparent_wrapper_ret(
@@ -47,7 +47,7 @@ LL | | ) -> TransparentWrapper {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x8` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:123:1
|
LL | extern "C" fn vector_arg_small(x: i8x8) -> i64 {
@@ -57,7 +57,7 @@ LL | extern "C" fn vector_arg_small(x: i8x8) -> i64 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x16` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:129:1
|
LL | extern "C" fn vector_arg(x: i8x16) -> i64 {
@@ -67,7 +67,7 @@ LL | extern "C" fn vector_arg(x: i8x16) -> i64 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:141:1
|
LL | extern "C" fn vector_wrapper_arg_small(x: Wrapper) -> i64 {
@@ -77,7 +77,7 @@ LL | extern "C" fn vector_wrapper_arg_small(x: Wrapper) -> i64 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:147:1
|
LL | extern "C" fn vector_wrapper_arg(x: Wrapper) -> i64 {
@@ -87,7 +87,7 @@ LL | extern "C" fn vector_wrapper_arg(x: Wrapper) -> i64 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:159:1
|
LL | extern "C" fn vector_transparent_wrapper_arg_small(x: TransparentWrapper) -> i64 {
@@ -97,7 +97,7 @@ LL | extern "C" fn vector_transparent_wrapper_arg_small(x: TransparentWrapper
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:165:1
|
LL | extern "C" fn vector_transparent_wrapper_arg(x: TransparentWrapper) -> i64 {
@@ -110,7 +110,7 @@ LL | extern "C" fn vector_transparent_wrapper_arg(x: TransparentWrapper)
error: aborting due to 10 previous errors
Future incompatibility report: Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x8` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:46:1
|
LL | extern "C" fn vector_ret_small(x: &i8x8) -> i8x8 {
@@ -126,7 +126,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x16` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:52:1
|
LL | extern "C" fn vector_ret(x: &i8x16) -> i8x16 {
@@ -142,7 +142,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:99:1
|
LL | / extern "C" fn vector_transparent_wrapper_ret_small(
@@ -160,7 +160,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:107:1
|
LL | / extern "C" fn vector_transparent_wrapper_ret(
@@ -178,7 +178,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x8` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:123:1
|
LL | extern "C" fn vector_arg_small(x: i8x8) -> i64 {
@@ -194,7 +194,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x16` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:129:1
|
LL | extern "C" fn vector_arg(x: i8x16) -> i64 {
@@ -210,7 +210,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:141:1
|
LL | extern "C" fn vector_wrapper_arg_small(x: Wrapper) -> i64 {
@@ -226,7 +226,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:147:1
|
LL | extern "C" fn vector_wrapper_arg(x: Wrapper) -> i64 {
@@ -242,7 +242,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:159:1
|
LL | extern "C" fn vector_transparent_wrapper_arg_small(x: TransparentWrapper) -> i64 {
@@ -258,7 +258,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:165:1
|
LL | extern "C" fn vector_transparent_wrapper_arg(x: TransparentWrapper) -> i64 {
diff --git a/tests/ui/simd-abi-checks-s390x.z13_no_vector.stderr b/tests/ui/simd-abi-checks-s390x.z13_no_vector.stderr
index cf135afb428f..ab97299e84a7 100644
--- a/tests/ui/simd-abi-checks-s390x.z13_no_vector.stderr
+++ b/tests/ui/simd-abi-checks-s390x.z13_no_vector.stderr
@@ -1,4 +1,4 @@
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x8` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:46:1
|
LL | extern "C" fn vector_ret_small(x: &i8x8) -> i8x8 {
@@ -13,7 +13,7 @@ note: the lint level is defined here
LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x16` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:52:1
|
LL | extern "C" fn vector_ret(x: &i8x16) -> i8x16 {
@@ -23,7 +23,7 @@ LL | extern "C" fn vector_ret(x: &i8x16) -> i8x16 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:99:1
|
LL | / extern "C" fn vector_transparent_wrapper_ret_small(
@@ -35,7 +35,7 @@ LL | | ) -> TransparentWrapper {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:107:1
|
LL | / extern "C" fn vector_transparent_wrapper_ret(
@@ -47,7 +47,7 @@ LL | | ) -> TransparentWrapper {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x8` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:123:1
|
LL | extern "C" fn vector_arg_small(x: i8x8) -> i64 {
@@ -57,7 +57,7 @@ LL | extern "C" fn vector_arg_small(x: i8x8) -> i64 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x16` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:129:1
|
LL | extern "C" fn vector_arg(x: i8x16) -> i64 {
@@ -67,7 +67,7 @@ LL | extern "C" fn vector_arg(x: i8x16) -> i64 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:141:1
|
LL | extern "C" fn vector_wrapper_arg_small(x: Wrapper) -> i64 {
@@ -77,7 +77,7 @@ LL | extern "C" fn vector_wrapper_arg_small(x: Wrapper) -> i64 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:147:1
|
LL | extern "C" fn vector_wrapper_arg(x: Wrapper) -> i64 {
@@ -87,7 +87,7 @@ LL | extern "C" fn vector_wrapper_arg(x: Wrapper) -> i64 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:159:1
|
LL | extern "C" fn vector_transparent_wrapper_arg_small(x: TransparentWrapper) -> i64 {
@@ -97,7 +97,7 @@ LL | extern "C" fn vector_transparent_wrapper_arg_small(x: TransparentWrapper
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:165:1
|
LL | extern "C" fn vector_transparent_wrapper_arg(x: TransparentWrapper) -> i64 {
@@ -110,7 +110,7 @@ LL | extern "C" fn vector_transparent_wrapper_arg(x: TransparentWrapper)
error: aborting due to 10 previous errors
Future incompatibility report: Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x8` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:46:1
|
LL | extern "C" fn vector_ret_small(x: &i8x8) -> i8x8 {
@@ -126,7 +126,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x16` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:52:1
|
LL | extern "C" fn vector_ret(x: &i8x16) -> i8x16 {
@@ -142,7 +142,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:99:1
|
LL | / extern "C" fn vector_transparent_wrapper_ret_small(
@@ -160,7 +160,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:107:1
|
LL | / extern "C" fn vector_transparent_wrapper_ret(
@@ -178,7 +178,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x8` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:123:1
|
LL | extern "C" fn vector_arg_small(x: i8x8) -> i64 {
@@ -194,7 +194,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x16` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:129:1
|
LL | extern "C" fn vector_arg(x: i8x16) -> i64 {
@@ -210,7 +210,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:141:1
|
LL | extern "C" fn vector_wrapper_arg_small(x: Wrapper) -> i64 {
@@ -226,7 +226,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:147:1
|
LL | extern "C" fn vector_wrapper_arg(x: Wrapper) -> i64 {
@@ -242,7 +242,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:159:1
|
LL | extern "C" fn vector_transparent_wrapper_arg_small(x: TransparentWrapper) -> i64 {
@@ -258,7 +258,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:165:1
|
LL | extern "C" fn vector_transparent_wrapper_arg(x: TransparentWrapper) -> i64 {
diff --git a/tests/ui/simd-abi-checks-s390x.z13_soft_float.stderr b/tests/ui/simd-abi-checks-s390x.z13_soft_float.stderr
index cf135afb428f..ab97299e84a7 100644
--- a/tests/ui/simd-abi-checks-s390x.z13_soft_float.stderr
+++ b/tests/ui/simd-abi-checks-s390x.z13_soft_float.stderr
@@ -1,4 +1,4 @@
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x8` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:46:1
|
LL | extern "C" fn vector_ret_small(x: &i8x8) -> i8x8 {
@@ -13,7 +13,7 @@ note: the lint level is defined here
LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x16` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:52:1
|
LL | extern "C" fn vector_ret(x: &i8x16) -> i8x16 {
@@ -23,7 +23,7 @@ LL | extern "C" fn vector_ret(x: &i8x16) -> i8x16 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:99:1
|
LL | / extern "C" fn vector_transparent_wrapper_ret_small(
@@ -35,7 +35,7 @@ LL | | ) -> TransparentWrapper {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:107:1
|
LL | / extern "C" fn vector_transparent_wrapper_ret(
@@ -47,7 +47,7 @@ LL | | ) -> TransparentWrapper {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x8` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:123:1
|
LL | extern "C" fn vector_arg_small(x: i8x8) -> i64 {
@@ -57,7 +57,7 @@ LL | extern "C" fn vector_arg_small(x: i8x8) -> i64 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x16` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:129:1
|
LL | extern "C" fn vector_arg(x: i8x16) -> i64 {
@@ -67,7 +67,7 @@ LL | extern "C" fn vector_arg(x: i8x16) -> i64 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:141:1
|
LL | extern "C" fn vector_wrapper_arg_small(x: Wrapper) -> i64 {
@@ -77,7 +77,7 @@ LL | extern "C" fn vector_wrapper_arg_small(x: Wrapper) -> i64 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:147:1
|
LL | extern "C" fn vector_wrapper_arg(x: Wrapper) -> i64 {
@@ -87,7 +87,7 @@ LL | extern "C" fn vector_wrapper_arg(x: Wrapper) -> i64 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:159:1
|
LL | extern "C" fn vector_transparent_wrapper_arg_small(x: TransparentWrapper) -> i64 {
@@ -97,7 +97,7 @@ LL | extern "C" fn vector_transparent_wrapper_arg_small(x: TransparentWrapper
= help: consider enabling it globally (`-C target-feature=+vector`) or locally (`#[target_feature(enable="vector")]`)
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:165:1
|
LL | extern "C" fn vector_transparent_wrapper_arg(x: TransparentWrapper) -> i64 {
@@ -110,7 +110,7 @@ LL | extern "C" fn vector_transparent_wrapper_arg(x: TransparentWrapper)
error: aborting due to 10 previous errors
Future incompatibility report: Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x8` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:46:1
|
LL | extern "C" fn vector_ret_small(x: &i8x8) -> i8x8 {
@@ -126,7 +126,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x16` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:52:1
|
LL | extern "C" fn vector_ret(x: &i8x16) -> i8x16 {
@@ -142,7 +142,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:99:1
|
LL | / extern "C" fn vector_transparent_wrapper_ret_small(
@@ -160,7 +160,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:107:1
|
LL | / extern "C" fn vector_transparent_wrapper_ret(
@@ -178,7 +178,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x8` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:123:1
|
LL | extern "C" fn vector_arg_small(x: i8x8) -> i64 {
@@ -194,7 +194,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `i8x16` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:129:1
|
LL | extern "C" fn vector_arg(x: i8x16) -> i64 {
@@ -210,7 +210,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:141:1
|
LL | extern "C" fn vector_wrapper_arg_small(x: Wrapper) -> i64 {
@@ -226,7 +226,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:147:1
|
LL | extern "C" fn vector_wrapper_arg(x: Wrapper) -> i64 {
@@ -242,7 +242,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:159:1
|
LL | extern "C" fn vector_transparent_wrapper_arg_small(x: TransparentWrapper) -> i64 {
@@ -258,7 +258,7 @@ LL | #![deny(abi_unsupported_vector_types)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
-error: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `vector` target feature, which is not enabled
+error: this function definition uses SIMD vector type `TransparentWrapper` which (with the chosen ABI) requires the `vector` target feature, which is not enabled
--> $DIR/simd-abi-checks-s390x.rs:165:1
|
LL | extern "C" fn vector_transparent_wrapper_arg(x: TransparentWrapper) -> i64 {
diff --git a/tests/ui/simd-abi-checks.rs b/tests/ui/simd-abi-checks.rs
index 3a344a1f5f8f..acab74300b8f 100644
--- a/tests/ui/simd-abi-checks.rs
+++ b/tests/ui/simd-abi-checks.rs
@@ -13,19 +13,19 @@ use std::arch::x86_64::*;
struct Wrapper(__m256);
unsafe extern "C" fn w(_: Wrapper) {
- //~^ this function definition uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled
+ //~^ requires the `avx` target feature, which is not enabled
//~| WARNING this was previously accepted by the compiler
todo!()
}
unsafe extern "C" fn f(_: __m256) {
- //~^ this function definition uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled
+ //~^ requires the `avx` target feature, which is not enabled
//~| WARNING this was previously accepted by the compiler
todo!()
}
unsafe extern "C" fn g() -> __m256 {
- //~^ this function definition uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled
+ //~^ requires the `avx` target feature, which is not enabled
//~| WARNING this was previously accepted by the compiler
todo!()
}
@@ -55,23 +55,23 @@ unsafe fn test() {
unsafe fn in_closure() -> impl FnOnce() -> __m256 {
#[inline(always)] // this disables target-feature inheritance
|| g()
- //~^ WARNING this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+ //~^ WARNING requires the `avx` target feature, which is not enabled in the caller
//~| WARNING this was previously accepted by the compiler
}
fn main() {
unsafe {
f(g());
- //~^ WARNING this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
- //~| WARNING this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+ //~^ WARNING requires the `avx` target feature, which is not enabled in the caller
+ //~| WARNING requires the `avx` target feature, which is not enabled in the caller
//~| WARNING this was previously accepted by the compiler
//~| WARNING this was previously accepted by the compiler
}
unsafe {
gavx(favx());
- //~^ WARNING this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
- //~| WARNING this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+ //~^ WARNING requires the `avx` target feature, which is not enabled in the caller
+ //~| WARNING requires the `avx` target feature, which is not enabled in the caller
//~| WARNING this was previously accepted by the compiler
//~| WARNING this was previously accepted by the compiler
}
@@ -82,8 +82,8 @@ fn main() {
unsafe {
w(Wrapper(g()));
- //~^ WARNING this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
- //~| WARNING this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+ //~^ WARNING requires the `avx` target feature, which is not enabled in the caller
+ //~| WARNING requires the `avx` target feature, which is not enabled in the caller
//~| WARNING this was previously accepted by the compiler
//~| WARNING this was previously accepted by the compiler
}
@@ -98,7 +98,7 @@ fn main() {
fn some_extern() -> __m256;
}
some_extern();
- //~^ WARNING this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+ //~^ WARNING requires the `avx` target feature, which is not enabled in the caller
//~| WARNING this was previously accepted by the compiler
}
}
diff --git a/tests/ui/simd-abi-checks.stderr b/tests/ui/simd-abi-checks.stderr
index eb7d9e810297..a849993a1663 100644
--- a/tests/ui/simd-abi-checks.stderr
+++ b/tests/ui/simd-abi-checks.stderr
@@ -1,4 +1,4 @@
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:64:11
|
LL | f(g());
@@ -9,7 +9,7 @@ LL | f(g());
= help: consider enabling it globally (`-C target-feature=+avx`) or locally (`#[target_feature(enable="avx")]`)
= note: `#[warn(abi_unsupported_vector_types)]` on by default
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:64:9
|
LL | f(g());
@@ -19,7 +19,7 @@ LL | f(g());
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+avx`) or locally (`#[target_feature(enable="avx")]`)
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:72:14
|
LL | gavx(favx());
@@ -29,7 +29,7 @@ LL | gavx(favx());
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+avx`) or locally (`#[target_feature(enable="avx")]`)
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:72:9
|
LL | gavx(favx());
@@ -39,7 +39,7 @@ LL | gavx(favx());
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+avx`) or locally (`#[target_feature(enable="avx")]`)
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:84:19
|
LL | w(Wrapper(g()));
@@ -49,7 +49,7 @@ LL | w(Wrapper(g()));
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+avx`) or locally (`#[target_feature(enable="avx")]`)
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:84:9
|
LL | w(Wrapper(g()));
@@ -59,7 +59,7 @@ LL | w(Wrapper(g()));
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+avx`) or locally (`#[target_feature(enable="avx")]`)
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:100:9
|
LL | some_extern();
@@ -69,7 +69,7 @@ LL | some_extern();
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+avx`) or locally (`#[target_feature(enable="avx")]`)
-warning: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled
+warning: this function definition uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled
--> $DIR/simd-abi-checks.rs:27:1
|
LL | unsafe extern "C" fn g() -> __m256 {
@@ -79,7 +79,7 @@ LL | unsafe extern "C" fn g() -> __m256 {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+avx`) or locally (`#[target_feature(enable="avx")]`)
-warning: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled
+warning: this function definition uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled
--> $DIR/simd-abi-checks.rs:21:1
|
LL | unsafe extern "C" fn f(_: __m256) {
@@ -89,7 +89,7 @@ LL | unsafe extern "C" fn f(_: __m256) {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+avx`) or locally (`#[target_feature(enable="avx")]`)
-warning: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled
+warning: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `avx` target feature, which is not enabled
--> $DIR/simd-abi-checks.rs:15:1
|
LL | unsafe extern "C" fn w(_: Wrapper) {
@@ -99,7 +99,7 @@ LL | unsafe extern "C" fn w(_: Wrapper) {
= note: for more information, see issue #116558
= help: consider enabling it globally (`-C target-feature=+avx`) or locally (`#[target_feature(enable="avx")]`)
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:57:8
|
LL | || g()
@@ -112,7 +112,7 @@ LL | || g()
warning: 11 warnings emitted
Future incompatibility report: Future breakage diagnostic:
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:64:11
|
LL | f(g());
@@ -124,7 +124,7 @@ LL | f(g());
= note: `#[warn(abi_unsupported_vector_types)]` on by default
Future breakage diagnostic:
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:64:9
|
LL | f(g());
@@ -136,7 +136,7 @@ LL | f(g());
= note: `#[warn(abi_unsupported_vector_types)]` on by default
Future breakage diagnostic:
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:72:14
|
LL | gavx(favx());
@@ -148,7 +148,7 @@ LL | gavx(favx());
= note: `#[warn(abi_unsupported_vector_types)]` on by default
Future breakage diagnostic:
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:72:9
|
LL | gavx(favx());
@@ -160,7 +160,7 @@ LL | gavx(favx());
= note: `#[warn(abi_unsupported_vector_types)]` on by default
Future breakage diagnostic:
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:84:19
|
LL | w(Wrapper(g()));
@@ -172,7 +172,7 @@ LL | w(Wrapper(g()));
= note: `#[warn(abi_unsupported_vector_types)]` on by default
Future breakage diagnostic:
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:84:9
|
LL | w(Wrapper(g()));
@@ -184,7 +184,7 @@ LL | w(Wrapper(g()));
= note: `#[warn(abi_unsupported_vector_types)]` on by default
Future breakage diagnostic:
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:100:9
|
LL | some_extern();
@@ -196,7 +196,7 @@ LL | some_extern();
= note: `#[warn(abi_unsupported_vector_types)]` on by default
Future breakage diagnostic:
-warning: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled
+warning: this function definition uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled
--> $DIR/simd-abi-checks.rs:27:1
|
LL | unsafe extern "C" fn g() -> __m256 {
@@ -208,7 +208,7 @@ LL | unsafe extern "C" fn g() -> __m256 {
= note: `#[warn(abi_unsupported_vector_types)]` on by default
Future breakage diagnostic:
-warning: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled
+warning: this function definition uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled
--> $DIR/simd-abi-checks.rs:21:1
|
LL | unsafe extern "C" fn f(_: __m256) {
@@ -220,7 +220,7 @@ LL | unsafe extern "C" fn f(_: __m256) {
= note: `#[warn(abi_unsupported_vector_types)]` on by default
Future breakage diagnostic:
-warning: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled
+warning: this function definition uses SIMD vector type `Wrapper` which (with the chosen ABI) requires the `avx` target feature, which is not enabled
--> $DIR/simd-abi-checks.rs:15:1
|
LL | unsafe extern "C" fn w(_: Wrapper) {
@@ -232,7 +232,7 @@ LL | unsafe extern "C" fn w(_: Wrapper) {
= note: `#[warn(abi_unsupported_vector_types)]` on by default
Future breakage diagnostic:
-warning: this function call uses a SIMD vector type that (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
+warning: this function call uses SIMD vector type `std::arch::x86_64::__m256` which (with the chosen ABI) requires the `avx` target feature, which is not enabled in the caller
--> $DIR/simd-abi-checks.rs:57:8
|
LL | || g()
diff --git a/tests/ui/sse-abi-checks.rs b/tests/ui/sse-abi-checks.rs
index d400e6eb698e..3c9fe1f0ddbd 100644
--- a/tests/ui/sse-abi-checks.rs
+++ b/tests/ui/sse-abi-checks.rs
@@ -19,6 +19,6 @@ pub struct SseVector([i64; 2]);
#[no_mangle]
pub unsafe extern "C" fn f(_: SseVector) {
- //~^ this function definition uses a SIMD vector type that (with the chosen ABI) requires the `sse` target feature, which is not enabled
+ //~^ this function definition uses SIMD vector type `SseVector` which (with the chosen ABI) requires the `sse` target feature, which is not enabled
//~| WARNING this was previously accepted by the compiler
}
diff --git a/tests/ui/sse-abi-checks.stderr b/tests/ui/sse-abi-checks.stderr
index e08b2d4e1917..712322a5848b 100644
--- a/tests/ui/sse-abi-checks.stderr
+++ b/tests/ui/sse-abi-checks.stderr
@@ -1,4 +1,4 @@
-warning: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `sse` target feature, which is not enabled
+warning: this function definition uses SIMD vector type `SseVector` which (with the chosen ABI) requires the `sse` target feature, which is not enabled
--> $DIR/sse-abi-checks.rs:21:1
|
LL | pub unsafe extern "C" fn f(_: SseVector) {
@@ -12,7 +12,7 @@ LL | pub unsafe extern "C" fn f(_: SseVector) {
warning: 1 warning emitted
Future incompatibility report: Future breakage diagnostic:
-warning: this function definition uses a SIMD vector type that (with the chosen ABI) requires the `sse` target feature, which is not enabled
+warning: this function definition uses SIMD vector type `SseVector` which (with the chosen ABI) requires the `sse` target feature, which is not enabled
--> $DIR/sse-abi-checks.rs:21:1
|
LL | pub unsafe extern "C" fn f(_: SseVector) {
From 309e371f7b062865199c38cfebe00173698c0aad Mon Sep 17 00:00:00 2001
From: Michael Goulet
Date: Sat, 15 Feb 2025 20:38:08 +0000
Subject: [PATCH 55/59] Ignore Self in bounds check for associated types with
Self:Sized
---
.../src/traits/dyn_compatibility.rs | 3 +++
.../associated_type_bound_mentions_self.rs | 14 ++++++++++++++
2 files changed, 17 insertions(+)
create mode 100644 tests/ui/dyn-compatibility/associated_type_bound_mentions_self.rs
diff --git a/compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs b/compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs
index 617bc87a9d23..a0df74835bc1 100644
--- a/compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs
+++ b/compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs
@@ -187,7 +187,10 @@ fn predicates_reference_self(
fn bounds_reference_self(tcx: TyCtxt<'_>, trait_def_id: DefId) -> SmallVec<[Span; 1]> {
tcx.associated_items(trait_def_id)
.in_definition_order()
+ // We're only looking at associated type bounds
.filter(|item| item.kind == ty::AssocKind::Type)
+ // Ignore GATs with `Self: Sized`
+ .filter(|item| !tcx.generics_require_sized_self(item.def_id))
.flat_map(|item| tcx.explicit_item_bounds(item.def_id).iter_identity_copied())
.filter_map(|(clause, sp)| {
// Item bounds *can* have self projections, since they never get
diff --git a/tests/ui/dyn-compatibility/associated_type_bound_mentions_self.rs b/tests/ui/dyn-compatibility/associated_type_bound_mentions_self.rs
new file mode 100644
index 000000000000..0be5fa27b4cc
--- /dev/null
+++ b/tests/ui/dyn-compatibility/associated_type_bound_mentions_self.rs
@@ -0,0 +1,14 @@
+// Ensure that we properly ignore the `B` associated type bound on `A::T`
+// since that associated type requires `Self: Sized`.
+
+//@ check-pass
+
+struct X(&'static dyn A);
+
+trait A {
+ type T: B where Self: Sized;
+}
+
+trait B {}
+
+fn main() {}
From 8aa2290b86627a7c996672d29e34b1e88f3c6673 Mon Sep 17 00:00:00 2001
From: Mark Rousskov
Date: Mon, 20 Jan 2025 17:13:57 -0500
Subject: [PATCH 56/59] Add relnotes for 1.85
---
RELEASES.md | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 127 insertions(+)
diff --git a/RELEASES.md b/RELEASES.md
index 1dd3fbea6136..f0def1a0e423 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -1,3 +1,130 @@
+Version 1.85.0 (2025-02-20)
+==========================
+
+
+
+Language
+--------
+- [The 2024 Edition is now stable.](https://github.com/rust-lang/rust/pull/133349)
+ See [the edition guide](https://doc.rust-lang.org/nightly/edition-guide/rust-2024/index.html) for more details.
+- [Stabilize async closures](https://github.com/rust-lang/rust/pull/132706)
+ See [RFC 3668](https://rust-lang.github.io/rfcs/3668-async-closures.html) for more details.
+- [Stabilize `#[diagnostic::do_not_recommend]`](https://github.com/rust-lang/rust/pull/132056)
+- [Add `unpredictable_function_pointer_comparisons` lint to warn against function pointer comparisons](https://github.com/rust-lang/rust/pull/118833)
+- [Lint on combining `#[no_mangle]` and `#[export_name]` attributes.](https://github.com/rust-lang/rust/pull/131558)
+
+
+
+Compiler
+--------
+- [The unstable flag `-Zpolymorphize` has been removed](https://github.com/rust-lang/rust/pull/133883), see https://github.com/rust-lang/compiler-team/issues/810 for some background.
+
+
+
+Platform Support
+----------------
+- [Promote `powerpc64le-unknown-linux-musl` to tier 2 with host tools](https://github.com/rust-lang/rust/pull/133801)
+
+Refer to Rust's [platform support page][platform-support-doc]
+for more information on Rust's tiered platform support.
+
+
+
+Libraries
+---------
+- [Panics in the standard library now have a leading `library/` in their path](https://github.com/rust-lang/rust/pull/132390)
+- [`std::env::home_dir()` on Windows now ignores the non-standard `$HOME` environment variable](https://github.com/rust-lang/rust/pull/132515)
+ It will be un-deprecated in a subsequent release.
+- [Add `AsyncFn*` to the prelude in all editions.](https://github.com/rust-lang/rust/pull/132611)
+
+
+
+Stabilized APIs
+---------------
+
+- [`BuildHasherDefault::new`](https://doc.rust-lang.org/stable/std/hash/struct.BuildHasherDefault.html#method.new)
+- [`ptr::fn_addr_eq`](https://doc.rust-lang.org/std/ptr/fn.fn_addr_eq.html)
+- [`io::ErrorKind::QuotaExceeded`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.QuotaExceeded)
+- [`io::ErrorKind::CrossesDevices`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.CrossesDevices)
+- [`{float}::midpoint`](https://doc.rust-lang.org/core/primitive.f32.html#method.midpoint)
+- [Unsigned `{integer}::midpoint`](https://doc.rust-lang.org/std/primitive.u64.html#method.midpoint)
+- [`NonZeroU*::midpoint`](https://doc.rust-lang.org/std/num/type.NonZeroU32.html#method.midpoint)
+- [impl `std::iter::Extend` for tuples with arity 1 through 12](https://doc.rust-lang.org/stable/std/iter/trait.Extend.html#impl-Extend%3C(A,)%3E-for-(EA,))
+- [`FromIterator<(A, ...)>` for tuples with arity 1 through 12](https://doc.rust-lang.org/stable/std/iter/trait.FromIterator.html#impl-FromIterator%3C(EA,)%3E-for-(A,))
+- [`std::task::Waker::noop`](https://doc.rust-lang.org/stable/std/task/struct.Waker.html#method.noop)
+
+These APIs are now stable in const contexts:
+
+- [`mem::size_of_val`](https://doc.rust-lang.org/stable/std/mem/fn.size_of_val.html)
+- [`mem::align_of_val`](https://doc.rust-lang.org/stable/std/mem/fn.align_of_val.html)
+- [`Layout::for_value`](https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.for_value)
+- [`Layout::align_to`](https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.align_to)
+- [`Layout::pad_to_align`](https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.pad_to_align)
+- [`Layout::extend`](https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.extend)
+- [`Layout::array`](https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.array)
+- [`std::mem::swap`](https://doc.rust-lang.org/stable/std/mem/fn.swap.html)
+- [`std::ptr::swap`](https://doc.rust-lang.org/stable/std/ptr/fn.swap.html)
+- [`NonNull::new`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.new)
+- [`HashMap::with_hasher`](https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.with_hasher)
+- [`HashSet::with_hasher`](https://doc.rust-lang.org/stable/std/collections/struct.HashSet.html#method.with_hasher)
+- [`BuildHasherDefault::new`](https://doc.rust-lang.org/stable/std/hash/struct.BuildHasherDefault.html#method.new)
+- [`::recip`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.recip)
+- [`::to_degrees`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.to_degrees)
+- [`::to_radians`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.to_radians)
+- [`::max`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.max)
+- [`::min`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.min)
+- [`::clamp`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.clamp)
+- [`::abs`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.abs)
+- [`::signum`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.signum)
+- [`::copysign`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.copysign)
+- [`MaybeUninit::write`](https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.write)
+
+
+
+Cargo
+-----
+- [Add future-incompatibility warning against keywords in cfgs and add raw-idents](https://github.com/rust-lang/cargo/pull/14671/)
+- [Stabilize higher precedence trailing flags](https://github.com/rust-lang/cargo/pull/14900/)
+- [Pass `CARGO_CFG_FEATURE` to build scripts](https://github.com/rust-lang/cargo/pull/14902/)
+
+
+
+Rustdoc
+-----
+- [Doc comment on impl blocks shows the first line, even when the impl block is collapsed](https://github.com/rust-lang/rust/pull/132155)
+
+
+
+Compatibility Notes
+-------------------
+- [`rustc` no longer treats the `test` cfg as a well known check-cfg](https://github.com/rust-lang/rust/pull/131729), instead it is up to the build systems and users of `--check-cfg`[^check-cfg] to set it as a well known cfg using `--check-cfg=cfg(test)`.
+ This is done to enable build systems like Cargo to set it conditionally, as not all source files are suitable for unit tests.
+ [Cargo (for now) unconditionally sets the `test` cfg as a well known cfg](https://github.com/rust-lang/cargo/pull/14963).
+[^check-cfg]: https://doc.rust-lang.org/nightly/rustc/check-cfg.html
+- [Disable potentially incorrect type inference if there are trivial and non-trivial where-clauses](https://github.com/rust-lang/rust/pull/132325)
+- `std::env::home_dir()` has been deprecated for years, because it can give surprising results in some Windows configurations if the `HOME` environment variable is set (which is not the normal configuration on Windows). We had previously avoided changing its behavior, out of concern for compatibility with code depending on this non-standard configuration. Given how long this function has been deprecated, we're now fixing its behavior as a bugfix. A subsequent release will remove the deprecation for this function.
+- [Make `core::ffi::c_char` signedness more closely match that of the platform-default `char`](https://github.com/rust-lang/rust/pull/132975)
+ This changed `c_char` from an `i8` to `u8` or vice versa on many Tier 2 and 3
+ targets (mostly Arm and RISC-V embedded targets). The new definition may
+ result in compilation failures but fixes compatibility issues with C.
+ The `libc` crate matches this change as of its 0.2.169 release.
+- [When compiling a nested `macro_rules` macro from an external crate, the content of the inner `macro_rules` is now built with the edition of the external crate, not the local crate.](https://github.com/rust-lang/rust/pull/133274)
+- [Increase `sparcv9-sun-solaris` and `x86_64-pc-solaris` Solaris baseline to 11.4.](https://github.com/rust-lang/rust/pull/133293)
+- [Show `abi_unsupported_vector_types` lint in future breakage reports](https://github.com/rust-lang/rust/pull/133374)
+- [Error if multiple super-trait instantiations of `dyn Trait` need associated types to be specified but only one is provided](https://github.com/rust-lang/rust/pull/133392)
+- [Change `powerpc64-ibm-aix` default `codemodel` to large](https://github.com/rust-lang/rust/pull/133811)
+
+
+
+Internal Changes
+----------------
+
+These changes do not affect any public interfaces of Rust, but they represent
+significant improvements to the performance or internals of rustc and related
+tools.
+
+- [Build `x86_64-unknown-linux-gnu` with LTO for C/C++ code (e.g., `jemalloc`)](https://github.com/rust-lang/rust/pull/134690)
+
Version 1.84.1 (2025-01-30)
==========================
From 56a850250bd74acec79f2d721e7bcc2b3cad6165 Mon Sep 17 00:00:00 2001
From: Urgau
Date: Tue, 18 Feb 2025 19:48:37 +0100
Subject: [PATCH 57/59] Pre-commit unpretty HIR test
---
tests/ui/unpretty/debug-fmt-hir.rs | 26 ++++++++++++++++++++++++++
tests/ui/unpretty/debug-fmt-hir.stdout | 25 +++++++++++++++++++++++++
2 files changed, 51 insertions(+)
create mode 100644 tests/ui/unpretty/debug-fmt-hir.rs
create mode 100644 tests/ui/unpretty/debug-fmt-hir.stdout
diff --git a/tests/ui/unpretty/debug-fmt-hir.rs b/tests/ui/unpretty/debug-fmt-hir.rs
new file mode 100644
index 000000000000..c19f3c4c0c57
--- /dev/null
+++ b/tests/ui/unpretty/debug-fmt-hir.rs
@@ -0,0 +1,26 @@
+//@ compile-flags: -Zunpretty=hir
+//@ check-pass
+
+use std::fmt;
+
+pub struct Bar {
+ a: String,
+ b: u8,
+}
+
+impl fmt::Debug for Bar {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ debug_struct_field2_finish(f, "Bar", "a", &self.a, "b", &&self.b)
+ }
+}
+
+fn debug_struct_field2_finish<'a>(
+ name: &str,
+ name1: &str,
+ value1: &'a dyn fmt::Debug,
+ name2: &str,
+ value2: &'a dyn fmt::Debug,
+) -> fmt::Result
+{
+ loop {}
+}
diff --git a/tests/ui/unpretty/debug-fmt-hir.stdout b/tests/ui/unpretty/debug-fmt-hir.stdout
new file mode 100644
index 000000000000..184c50942858
--- /dev/null
+++ b/tests/ui/unpretty/debug-fmt-hir.stdout
@@ -0,0 +1,25 @@
+#[prelude_import]
+use ::std::prelude::rust_2015::*;
+#[macro_use]
+extern crate std;
+//@ compile-flags: -Zunpretty=hir
+//@ check-pass
+
+use std::fmt;
+
+struct Bar {
+ a: String,
+ b: u8,
+}
+
+impl fmt::Debug for Bar {
+ fn fmt<'_, '_, '_>(self: &'_ Self, f: &'_ mut fmt::Formatter<'_>)
+ ->
+ fmt::Result {
+ debug_struct_field2_finish(f, "Bar", "a", &self.a, "b", &&self.b)
+ }
+}
+
+fn debug_struct_field2_finish<'a, '_, '_,
+ '_>(name: &'_ str, name1: &'_ str, value1: &'a dyn fmt::Debug,
+ name2: &'_ str, value2: &'a dyn fmt::Debug) -> fmt::Result { loop { } }
From 46154c9b09b81ab02137f2ad1450d2d6277789ce Mon Sep 17 00:00:00 2001
From: Urgau
Date: Tue, 18 Feb 2025 21:49:58 +0100
Subject: [PATCH 58/59] Filter elided lifetimes in HIR pretty printing
---
compiler/rustc_ast_pretty/src/pprust/state.rs | 14 ++++++++-----
compiler/rustc_hir_pretty/src/lib.rs | 21 ++++++++++++++++---
tests/ui/unpretty/debug-fmt-hir.stdout | 8 +++----
3 files changed, 31 insertions(+), 12 deletions(-)
diff --git a/compiler/rustc_ast_pretty/src/pprust/state.rs b/compiler/rustc_ast_pretty/src/pprust/state.rs
index 0bf5de3ef898..44e956dc37f3 100644
--- a/compiler/rustc_ast_pretty/src/pprust/state.rs
+++ b/compiler/rustc_ast_pretty/src/pprust/state.rs
@@ -424,20 +424,23 @@ pub trait PrintState<'a>: std::ops::Deref + std::ops::Dere
self.ann_post(ident)
}
- fn strsep(
+ fn strsep<'x, T: 'x, F, I>(
&mut self,
sep: &'static str,
space_before: bool,
b: Breaks,
- elts: &[T],
+ elts: I,
mut op: F,
) where
F: FnMut(&mut Self, &T),
+ I: IntoIterator- ,
{
+ let mut it = elts.into_iter();
+
self.rbox(0, b);
- if let Some((first, rest)) = elts.split_first() {
+ if let Some(first) = it.next() {
op(self, first);
- for elt in rest {
+ for elt in it {
if space_before {
self.space();
}
@@ -448,9 +451,10 @@ pub trait PrintState<'a>: std::ops::Deref + std::ops::Dere
self.end();
}
- fn commasep(&mut self, b: Breaks, elts: &[T], op: F)
+ fn commasep<'x, T: 'x, F, I>(&mut self, b: Breaks, elts: I, op: F)
where
F: FnMut(&mut Self, &T),
+ I: IntoIterator
- ,
{
self.strsep(",", false, b, elts, op)
}
diff --git a/compiler/rustc_hir_pretty/src/lib.rs b/compiler/rustc_hir_pretty/src/lib.rs
index 57df3127a025..566502a4896a 100644
--- a/compiler/rustc_hir_pretty/src/lib.rs
+++ b/compiler/rustc_hir_pretty/src/lib.rs
@@ -2284,7 +2284,9 @@ impl<'a> State<'a> {
GenericBound::Use(args, _) => {
self.word("use <");
- self.commasep(Inconsistent, args, |s, arg| s.print_precise_capturing_arg(*arg));
+ self.commasep(Inconsistent, *args, |s, arg| {
+ s.print_precise_capturing_arg(*arg)
+ });
self.word(">");
}
@@ -2300,10 +2302,23 @@ impl<'a> State<'a> {
}
fn print_generic_params(&mut self, generic_params: &[GenericParam<'_>]) {
- if !generic_params.is_empty() {
+ let is_lifetime_elided = |generic_param: &GenericParam<'_>| {
+ matches!(
+ generic_param.kind,
+ GenericParamKind::Lifetime { kind: LifetimeParamKind::Elided(_) }
+ )
+ };
+
+ // We don't want to show elided lifetimes as they are compiler-inserted and not
+ // expressible in surface level Rust.
+ if !generic_params.is_empty() && !generic_params.iter().all(is_lifetime_elided) {
self.word("<");
- self.commasep(Inconsistent, generic_params, |s, param| s.print_generic_param(param));
+ self.commasep(
+ Inconsistent,
+ generic_params.iter().filter(|gp| !is_lifetime_elided(gp)),
+ |s, param| s.print_generic_param(param),
+ );
self.word(">");
}
diff --git a/tests/ui/unpretty/debug-fmt-hir.stdout b/tests/ui/unpretty/debug-fmt-hir.stdout
index 184c50942858..bd7a7c4463a9 100644
--- a/tests/ui/unpretty/debug-fmt-hir.stdout
+++ b/tests/ui/unpretty/debug-fmt-hir.stdout
@@ -13,13 +13,13 @@ struct Bar {
}
impl fmt::Debug for Bar {
- fn fmt<'_, '_, '_>(self: &'_ Self, f: &'_ mut fmt::Formatter<'_>)
+ fn fmt(self: &'_ Self, f: &'_ mut fmt::Formatter<'_>)
->
fmt::Result {
debug_struct_field2_finish(f, "Bar", "a", &self.a, "b", &&self.b)
}
}
-fn debug_struct_field2_finish<'a, '_, '_,
- '_>(name: &'_ str, name1: &'_ str, value1: &'a dyn fmt::Debug,
- name2: &'_ str, value2: &'a dyn fmt::Debug) -> fmt::Result { loop { } }
+fn debug_struct_field2_finish<'a>(name: &'_ str, name1: &'_ str,
+ value1: &'a dyn fmt::Debug, name2: &'_ str, value2: &'a dyn fmt::Debug)
+ -> fmt::Result { loop { } }
From d0e7bfd2056cffc7ea0e5f7ed577e987a627ba04 Mon Sep 17 00:00:00 2001
From: Urgau
Date: Sat, 22 Feb 2025 14:50:00 +0100
Subject: [PATCH 59/59] Render implicit self with their shorthand syntax in HIR
pretty printing
---
compiler/rustc_hir_pretty/src/lib.rs | 55 ++++++++++++++++++++------
tests/ui/unpretty/debug-fmt-hir.stdout | 2 +-
tests/ui/unpretty/self-hir.rs | 14 +++++++
tests/ui/unpretty/self-hir.stdout | 18 +++++++++
4 files changed, 75 insertions(+), 14 deletions(-)
create mode 100644 tests/ui/unpretty/self-hir.rs
create mode 100644 tests/ui/unpretty/self-hir.stdout
diff --git a/compiler/rustc_hir_pretty/src/lib.rs b/compiler/rustc_hir_pretty/src/lib.rs
index 566502a4896a..56e268aea54d 100644
--- a/compiler/rustc_hir_pretty/src/lib.rs
+++ b/compiler/rustc_hir_pretty/src/lib.rs
@@ -18,7 +18,8 @@ use rustc_ast_pretty::pprust::state::MacHeader;
use rustc_ast_pretty::pprust::{Comments, PrintState};
use rustc_hir::{
BindingMode, ByRef, ConstArgKind, GenericArg, GenericBound, GenericParam, GenericParamKind,
- HirId, LifetimeParamKind, Node, PatKind, PreciseCapturingArg, RangeEnd, Term, TyPatKind,
+ HirId, ImplicitSelfKind, LifetimeParamKind, Node, PatKind, PreciseCapturingArg, RangeEnd, Term,
+ TyPatKind,
};
use rustc_span::source_map::SourceMap;
use rustc_span::{FileName, Ident, Span, Symbol, kw};
@@ -2086,6 +2087,28 @@ impl<'a> State<'a> {
self.print_pat(arg.pat);
}
+ fn print_implicit_self(&mut self, implicit_self_kind: &hir::ImplicitSelfKind) {
+ match implicit_self_kind {
+ ImplicitSelfKind::Imm => {
+ self.word("self");
+ }
+ ImplicitSelfKind::Mut => {
+ self.print_mutability(hir::Mutability::Mut, false);
+ self.word("self");
+ }
+ ImplicitSelfKind::RefImm => {
+ self.word("&");
+ self.word("self");
+ }
+ ImplicitSelfKind::RefMut => {
+ self.word("&");
+ self.print_mutability(hir::Mutability::Mut, false);
+ self.word("self");
+ }
+ ImplicitSelfKind::None => unreachable!(),
+ }
+ }
+
fn print_arm(&mut self, arm: &hir::Arm<'_>) {
// I have no idea why this check is necessary, but here it
// is :(
@@ -2151,27 +2174,33 @@ impl<'a> State<'a> {
// Make sure we aren't supplied *both* `arg_names` and `body_id`.
assert!(arg_names.is_empty() || body_id.is_none());
let mut i = 0;
- let mut print_arg = |s: &mut Self| {
- if let Some(arg_name) = arg_names.get(i) {
- s.word(arg_name.to_string());
- s.word(":");
- s.space();
- } else if let Some(body_id) = body_id {
- s.ann.nested(s, Nested::BodyParamPat(body_id, i));
- s.word(":");
- s.space();
+ let mut print_arg = |s: &mut Self, ty: Option<&hir::Ty<'_>>| {
+ if i == 0 && decl.implicit_self.has_implicit_self() {
+ s.print_implicit_self(&decl.implicit_self);
+ } else {
+ if let Some(arg_name) = arg_names.get(i) {
+ s.word(arg_name.to_string());
+ s.word(":");
+ s.space();
+ } else if let Some(body_id) = body_id {
+ s.ann.nested(s, Nested::BodyParamPat(body_id, i));
+ s.word(":");
+ s.space();
+ }
+ if let Some(ty) = ty {
+ s.print_type(ty);
+ }
}
i += 1;
};
self.commasep(Inconsistent, decl.inputs, |s, ty| {
s.ibox(INDENT_UNIT);
- print_arg(s);
- s.print_type(ty);
+ print_arg(s, Some(ty));
s.end();
});
if decl.c_variadic {
self.word(", ");
- print_arg(self);
+ print_arg(self, None);
self.word("...");
}
self.pclose();
diff --git a/tests/ui/unpretty/debug-fmt-hir.stdout b/tests/ui/unpretty/debug-fmt-hir.stdout
index bd7a7c4463a9..2c9c96de9d14 100644
--- a/tests/ui/unpretty/debug-fmt-hir.stdout
+++ b/tests/ui/unpretty/debug-fmt-hir.stdout
@@ -13,7 +13,7 @@ struct Bar {
}
impl fmt::Debug for Bar {
- fn fmt(self: &'_ Self, f: &'_ mut fmt::Formatter<'_>)
+ fn fmt(&self, f: &'_ mut fmt::Formatter<'_>)
->
fmt::Result {
debug_struct_field2_finish(f, "Bar", "a", &self.a, "b", &&self.b)
diff --git a/tests/ui/unpretty/self-hir.rs b/tests/ui/unpretty/self-hir.rs
new file mode 100644
index 000000000000..448d828d4446
--- /dev/null
+++ b/tests/ui/unpretty/self-hir.rs
@@ -0,0 +1,14 @@
+//@ compile-flags: -Zunpretty=hir
+//@ check-pass
+
+pub struct Bar {
+ a: String,
+ b: u8,
+}
+
+impl Bar {
+ fn imm_self(self) {}
+ fn mut_self(mut self) {}
+ fn refimm_self(&self) {}
+ fn refmut_self(&mut self) {}
+}
diff --git a/tests/ui/unpretty/self-hir.stdout b/tests/ui/unpretty/self-hir.stdout
new file mode 100644
index 000000000000..4da080dc611e
--- /dev/null
+++ b/tests/ui/unpretty/self-hir.stdout
@@ -0,0 +1,18 @@
+#[prelude_import]
+use ::std::prelude::rust_2015::*;
+#[macro_use]
+extern crate std;
+//@ compile-flags: -Zunpretty=hir
+//@ check-pass
+
+struct Bar {
+ a: String,
+ b: u8,
+}
+
+impl Bar {
+ fn imm_self(self) { }
+ fn mut_self(mut self) { }
+ fn refimm_self(&self) { }
+ fn refmut_self(&mut self) { }
+}