Auto merge of #143157 - matthiaskrgr:rollup-90rtm3a, r=matthiaskrgr
Rollup of 9 pull requests Successful merges: - rust-lang/rust#123476 (std::net: adding `unix_socket_exclbind` feature for solaris/illumos.) - rust-lang/rust#142708 (Do not include NUL-terminator in computed length) - rust-lang/rust#142963 (Skip unnecessary components in x64 try builds) - rust-lang/rust#142987 (rustdoc: show attributes on enum variants) - rust-lang/rust#143031 (Add windows-gnullvm hosts to the manifest) - rust-lang/rust#143082 (update internal `send_signal` comment) - rust-lang/rust#143110 (Use tidy to sort `sym::*` items) - rust-lang/rust#143111 (BTreeSet: remove duplicated code by reusing `from_sorted_iter`) - rust-lang/rust#143114 (Minor Documentation Improvements) r? `@ghost` `@rustbot` modify labels: rollup try-job: dist-i586-gnu-i586-i686-musl
This commit is contained in:
@@ -21,13 +21,14 @@ fn alloc_caller_location<'tcx>(
|
||||
assert!(!filename.as_str().as_bytes().contains(&0));
|
||||
|
||||
let loc_details = ecx.tcx.sess.opts.unstable_opts.location_detail;
|
||||
let file_wide_ptr = {
|
||||
let filename = {
|
||||
let filename = if loc_details.file { filename.as_str() } else { "<redacted>" };
|
||||
let filename_with_nul = filename.to_owned() + "\0";
|
||||
// This can fail if rustc runs out of memory right here. Trying to emit an error would be
|
||||
// pointless, since that would require allocating more memory than these short strings.
|
||||
let file_ptr = ecx.allocate_bytes_dedup(filename_with_nul.as_bytes()).unwrap();
|
||||
Immediate::new_slice(file_ptr.into(), filename_with_nul.len().try_into().unwrap(), ecx)
|
||||
let file_len = u64::try_from(filename.len()).unwrap();
|
||||
Immediate::new_slice(file_ptr.into(), file_len, ecx)
|
||||
};
|
||||
let line = if loc_details.line { Scalar::from_u32(line) } else { Scalar::from_u32(0) };
|
||||
let col = if loc_details.column { Scalar::from_u32(col) } else { Scalar::from_u32(0) };
|
||||
@@ -41,11 +42,8 @@ fn alloc_caller_location<'tcx>(
|
||||
let location = ecx.allocate(loc_layout, MemoryKind::CallerLocation).unwrap();
|
||||
|
||||
// Initialize fields.
|
||||
ecx.write_immediate(
|
||||
file_wide_ptr,
|
||||
&ecx.project_field(&location, FieldIdx::from_u32(0)).unwrap(),
|
||||
)
|
||||
.expect("writing to memory we just allocated cannot fail");
|
||||
ecx.write_immediate(filename, &ecx.project_field(&location, FieldIdx::from_u32(0)).unwrap())
|
||||
.expect("writing to memory we just allocated cannot fail");
|
||||
ecx.write_scalar(line, &ecx.project_field(&location, FieldIdx::from_u32(1)).unwrap())
|
||||
.expect("writing to memory we just allocated cannot fail");
|
||||
ecx.write_scalar(col, &ecx.project_field(&location, FieldIdx::from_u32(2)).unwrap())
|
||||
|
||||
@@ -190,17 +190,6 @@ fn symbols_with_errors(input: TokenStream) -> (TokenStream, Vec<syn::Error>) {
|
||||
let mut symbols_stream = quote! {};
|
||||
let mut prefill_stream = quote! {};
|
||||
let mut entries = Entries::with_capacity(input.keywords.len() + input.symbols.len() + 10);
|
||||
let mut prev_key: Option<(Span, String)> = None;
|
||||
|
||||
let mut check_order = |span: Span, s: &str, errors: &mut Errors| {
|
||||
if let Some((prev_span, ref prev_str)) = prev_key {
|
||||
if s < prev_str {
|
||||
errors.error(span, format!("Symbol `{s}` must precede `{prev_str}`"));
|
||||
errors.error(prev_span, format!("location of previous symbol `{prev_str}`"));
|
||||
}
|
||||
}
|
||||
prev_key = Some((span, s.to_string()));
|
||||
};
|
||||
|
||||
// Generate the listed keywords.
|
||||
for keyword in input.keywords.iter() {
|
||||
@@ -219,7 +208,6 @@ fn symbols_with_errors(input: TokenStream) -> (TokenStream, Vec<syn::Error>) {
|
||||
// Generate the listed symbols.
|
||||
for symbol in input.symbols.iter() {
|
||||
let name = &symbol.name;
|
||||
check_order(symbol.name.span(), &name.to_string(), &mut errors);
|
||||
|
||||
let value = match &symbol.value {
|
||||
Value::SameAsName => name.to_string(),
|
||||
|
||||
@@ -84,18 +84,3 @@ fn check_dup_symbol_and_keyword() {
|
||||
};
|
||||
test_symbols_macro(input, &["Symbol `splat` is duplicated", "location of previous definition"]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn check_symbol_order() {
|
||||
let input = quote! {
|
||||
Keywords {}
|
||||
Symbols {
|
||||
zebra,
|
||||
aardvark,
|
||||
}
|
||||
};
|
||||
test_symbols_macro(
|
||||
input,
|
||||
&["Symbol `aardvark` must precede `zebra`", "location of previous symbol `zebra`"],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -150,14 +150,10 @@ symbols! {
|
||||
// As well as the symbols listed, there are symbols for the strings
|
||||
// "0", "1", ..., "9", which are accessible via `sym::integer`.
|
||||
//
|
||||
// The proc macro will abort if symbols are not in alphabetical order (as
|
||||
// defined by `impl Ord for str`) or if any symbols are duplicated. Vim
|
||||
// users can sort the list by selecting it and executing the command
|
||||
// `:'<,'>!LC_ALL=C sort`.
|
||||
//
|
||||
// There is currently no checking that all symbols are used; that would be
|
||||
// nice to have.
|
||||
Symbols {
|
||||
// tidy-alphabetical-start
|
||||
Abi,
|
||||
AcqRel,
|
||||
Acquire,
|
||||
@@ -175,18 +171,18 @@ symbols! {
|
||||
AsyncGenPending,
|
||||
AsyncGenReady,
|
||||
AtomicBool,
|
||||
AtomicI128,
|
||||
AtomicI8,
|
||||
AtomicI16,
|
||||
AtomicI32,
|
||||
AtomicI64,
|
||||
AtomicI8,
|
||||
AtomicI128,
|
||||
AtomicIsize,
|
||||
AtomicPtr,
|
||||
AtomicU128,
|
||||
AtomicU8,
|
||||
AtomicU16,
|
||||
AtomicU32,
|
||||
AtomicU64,
|
||||
AtomicU8,
|
||||
AtomicU128,
|
||||
AtomicUsize,
|
||||
BTreeEntry,
|
||||
BTreeMap,
|
||||
@@ -607,10 +603,10 @@ symbols! {
|
||||
catch_unwind,
|
||||
cause,
|
||||
cdylib,
|
||||
ceilf128,
|
||||
ceilf16,
|
||||
ceilf32,
|
||||
ceilf64,
|
||||
ceilf128,
|
||||
cfg,
|
||||
cfg_accessible,
|
||||
cfg_attr,
|
||||
@@ -747,10 +743,10 @@ symbols! {
|
||||
copy,
|
||||
copy_closures,
|
||||
copy_nonoverlapping,
|
||||
copysignf128,
|
||||
copysignf16,
|
||||
copysignf32,
|
||||
copysignf64,
|
||||
copysignf128,
|
||||
core,
|
||||
core_panic,
|
||||
core_panic_2015_macro,
|
||||
@@ -763,10 +759,10 @@ symbols! {
|
||||
coroutine_state,
|
||||
coroutine_yield,
|
||||
coroutines,
|
||||
cosf128,
|
||||
cosf16,
|
||||
cosf32,
|
||||
cosf64,
|
||||
cosf128,
|
||||
count,
|
||||
coverage,
|
||||
coverage_attribute,
|
||||
@@ -874,8 +870,8 @@ symbols! {
|
||||
dotdot_in_tuple_patterns,
|
||||
dotdoteq_in_patterns,
|
||||
dreg,
|
||||
dreg_low16,
|
||||
dreg_low8,
|
||||
dreg_low16,
|
||||
drop,
|
||||
drop_in_place,
|
||||
drop_types_in_const,
|
||||
@@ -928,16 +924,16 @@ symbols! {
|
||||
exhaustive_integer_patterns,
|
||||
exhaustive_patterns,
|
||||
existential_type,
|
||||
exp2f128,
|
||||
exp2f16,
|
||||
exp2f32,
|
||||
exp2f64,
|
||||
exp2f128,
|
||||
expect,
|
||||
expected,
|
||||
expf128,
|
||||
expf16,
|
||||
expf32,
|
||||
expf64,
|
||||
expf128,
|
||||
explicit_extern_abis,
|
||||
explicit_generic_args_with_impl_trait,
|
||||
explicit_tail_calls,
|
||||
@@ -958,9 +954,6 @@ symbols! {
|
||||
external,
|
||||
external_doc,
|
||||
f,
|
||||
f128,
|
||||
f128_epsilon,
|
||||
f128_nan,
|
||||
f16,
|
||||
f16_epsilon,
|
||||
f16_nan,
|
||||
@@ -999,10 +992,13 @@ symbols! {
|
||||
f64_legacy_const_neg_infinity,
|
||||
f64_legacy_const_radix,
|
||||
f64_nan,
|
||||
fabsf128,
|
||||
f128,
|
||||
f128_epsilon,
|
||||
f128_nan,
|
||||
fabsf16,
|
||||
fabsf32,
|
||||
fabsf64,
|
||||
fabsf128,
|
||||
fadd_algebraic,
|
||||
fadd_fast,
|
||||
fake_variadic,
|
||||
@@ -1024,22 +1020,22 @@ symbols! {
|
||||
flags,
|
||||
float,
|
||||
float_to_int_unchecked,
|
||||
floorf128,
|
||||
floorf16,
|
||||
floorf32,
|
||||
floorf64,
|
||||
fmaf128,
|
||||
floorf128,
|
||||
fmaf16,
|
||||
fmaf32,
|
||||
fmaf64,
|
||||
fmaf128,
|
||||
fmt,
|
||||
fmt_debug,
|
||||
fmul_algebraic,
|
||||
fmul_fast,
|
||||
fmuladdf128,
|
||||
fmuladdf16,
|
||||
fmuladdf32,
|
||||
fmuladdf64,
|
||||
fmuladdf128,
|
||||
fn_align,
|
||||
fn_body,
|
||||
fn_delegation,
|
||||
@@ -1140,13 +1136,12 @@ symbols! {
|
||||
html_root_url,
|
||||
hwaddress,
|
||||
i,
|
||||
i128,
|
||||
i128_legacy_const_max,
|
||||
i128_legacy_const_min,
|
||||
i128_legacy_fn_max_value,
|
||||
i128_legacy_fn_min_value,
|
||||
i128_legacy_mod,
|
||||
i128_type,
|
||||
i8,
|
||||
i8_legacy_const_max,
|
||||
i8_legacy_const_min,
|
||||
i8_legacy_fn_max_value,
|
||||
i8_legacy_fn_min_value,
|
||||
i8_legacy_mod,
|
||||
i16,
|
||||
i16_legacy_const_max,
|
||||
i16_legacy_const_min,
|
||||
@@ -1165,12 +1160,13 @@ symbols! {
|
||||
i64_legacy_fn_max_value,
|
||||
i64_legacy_fn_min_value,
|
||||
i64_legacy_mod,
|
||||
i8,
|
||||
i8_legacy_const_max,
|
||||
i8_legacy_const_min,
|
||||
i8_legacy_fn_max_value,
|
||||
i8_legacy_fn_min_value,
|
||||
i8_legacy_mod,
|
||||
i128,
|
||||
i128_legacy_const_max,
|
||||
i128_legacy_const_min,
|
||||
i128_legacy_fn_max_value,
|
||||
i128_legacy_fn_min_value,
|
||||
i128_legacy_mod,
|
||||
i128_type,
|
||||
ident,
|
||||
if_let,
|
||||
if_let_guard,
|
||||
@@ -1292,19 +1288,19 @@ symbols! {
|
||||
loaded_from_disk,
|
||||
local,
|
||||
local_inner_macros,
|
||||
log10f128,
|
||||
log10f16,
|
||||
log10f32,
|
||||
log10f64,
|
||||
log2f128,
|
||||
log2f16,
|
||||
log2f32,
|
||||
log2f64,
|
||||
log2f128,
|
||||
log10f16,
|
||||
log10f32,
|
||||
log10f64,
|
||||
log10f128,
|
||||
log_syntax,
|
||||
logf128,
|
||||
logf16,
|
||||
logf32,
|
||||
logf64,
|
||||
logf128,
|
||||
loongarch_target_feature,
|
||||
loop_break_value,
|
||||
loop_match,
|
||||
@@ -1334,14 +1330,14 @@ symbols! {
|
||||
match_beginning_vert,
|
||||
match_default_bindings,
|
||||
matches_macro,
|
||||
maximumf128,
|
||||
maximumf16,
|
||||
maximumf32,
|
||||
maximumf64,
|
||||
maxnumf128,
|
||||
maximumf128,
|
||||
maxnumf16,
|
||||
maxnumf32,
|
||||
maxnumf64,
|
||||
maxnumf128,
|
||||
may_dangle,
|
||||
may_unwind,
|
||||
maybe_uninit,
|
||||
@@ -1372,14 +1368,14 @@ symbols! {
|
||||
min_generic_const_args,
|
||||
min_specialization,
|
||||
min_type_alias_impl_trait,
|
||||
minimumf128,
|
||||
minimumf16,
|
||||
minimumf32,
|
||||
minimumf64,
|
||||
minnumf128,
|
||||
minimumf128,
|
||||
minnumf16,
|
||||
minnumf32,
|
||||
minnumf64,
|
||||
minnumf128,
|
||||
mips_target_feature,
|
||||
mir_assume,
|
||||
mir_basic_block,
|
||||
@@ -1634,14 +1630,14 @@ symbols! {
|
||||
post_dash_lto: "post-lto",
|
||||
postfix_match,
|
||||
powerpc_target_feature,
|
||||
powf128,
|
||||
powf16,
|
||||
powf32,
|
||||
powf64,
|
||||
powif128,
|
||||
powf128,
|
||||
powif16,
|
||||
powif32,
|
||||
powif64,
|
||||
powif128,
|
||||
pre_dash_lto: "pre-lto",
|
||||
precise_capturing,
|
||||
precise_capturing_in_traits,
|
||||
@@ -1786,14 +1782,14 @@ symbols! {
|
||||
ropi_rwpi: "ropi-rwpi",
|
||||
rotate_left,
|
||||
rotate_right,
|
||||
round_ties_even_f128,
|
||||
round_ties_even_f16,
|
||||
round_ties_even_f32,
|
||||
round_ties_even_f64,
|
||||
roundf128,
|
||||
round_ties_even_f128,
|
||||
roundf16,
|
||||
roundf32,
|
||||
roundf64,
|
||||
roundf128,
|
||||
rt,
|
||||
rtm_target_feature,
|
||||
rust,
|
||||
@@ -1973,8 +1969,8 @@ symbols! {
|
||||
simd_fexp2,
|
||||
simd_ffi,
|
||||
simd_flog,
|
||||
simd_flog10,
|
||||
simd_flog2,
|
||||
simd_flog10,
|
||||
simd_floor,
|
||||
simd_fma,
|
||||
simd_fmax,
|
||||
@@ -2022,10 +2018,10 @@ symbols! {
|
||||
simd_with_exposed_provenance,
|
||||
simd_xor,
|
||||
since,
|
||||
sinf128,
|
||||
sinf16,
|
||||
sinf32,
|
||||
sinf64,
|
||||
sinf128,
|
||||
size,
|
||||
size_of,
|
||||
size_of_val,
|
||||
@@ -2047,10 +2043,10 @@ symbols! {
|
||||
specialization,
|
||||
speed,
|
||||
spotlight,
|
||||
sqrtf128,
|
||||
sqrtf16,
|
||||
sqrtf32,
|
||||
sqrtf64,
|
||||
sqrtf128,
|
||||
sreg,
|
||||
sreg_low16,
|
||||
sse,
|
||||
@@ -2128,10 +2124,10 @@ symbols! {
|
||||
target_has_atomic,
|
||||
target_has_atomic_equal_alignment,
|
||||
target_has_atomic_load_store,
|
||||
target_has_reliable_f128,
|
||||
target_has_reliable_f128_math,
|
||||
target_has_reliable_f16,
|
||||
target_has_reliable_f16_math,
|
||||
target_has_reliable_f128,
|
||||
target_has_reliable_f128_math,
|
||||
target_os,
|
||||
target_pointer_width,
|
||||
target_thread_local,
|
||||
@@ -2174,10 +2170,10 @@ symbols! {
|
||||
transparent_enums,
|
||||
transparent_unions,
|
||||
trivial_bounds,
|
||||
truncf128,
|
||||
truncf16,
|
||||
truncf32,
|
||||
truncf64,
|
||||
truncf128,
|
||||
try_blocks,
|
||||
try_capture,
|
||||
try_from,
|
||||
@@ -2206,12 +2202,12 @@ symbols! {
|
||||
type_name,
|
||||
type_privacy_lints,
|
||||
typed_swap_nonoverlapping,
|
||||
u128,
|
||||
u128_legacy_const_max,
|
||||
u128_legacy_const_min,
|
||||
u128_legacy_fn_max_value,
|
||||
u128_legacy_fn_min_value,
|
||||
u128_legacy_mod,
|
||||
u8,
|
||||
u8_legacy_const_max,
|
||||
u8_legacy_const_min,
|
||||
u8_legacy_fn_max_value,
|
||||
u8_legacy_fn_min_value,
|
||||
u8_legacy_mod,
|
||||
u16,
|
||||
u16_legacy_const_max,
|
||||
u16_legacy_const_min,
|
||||
@@ -2230,12 +2226,12 @@ symbols! {
|
||||
u64_legacy_fn_max_value,
|
||||
u64_legacy_fn_min_value,
|
||||
u64_legacy_mod,
|
||||
u8,
|
||||
u8_legacy_const_max,
|
||||
u8_legacy_const_min,
|
||||
u8_legacy_fn_max_value,
|
||||
u8_legacy_fn_min_value,
|
||||
u8_legacy_mod,
|
||||
u128,
|
||||
u128_legacy_const_max,
|
||||
u128_legacy_const_min,
|
||||
u128_legacy_fn_max_value,
|
||||
u128_legacy_fn_min_value,
|
||||
u128_legacy_mod,
|
||||
ub_checks,
|
||||
unaligned_volatile_load,
|
||||
unaligned_volatile_store,
|
||||
@@ -2388,6 +2384,7 @@ symbols! {
|
||||
zfh,
|
||||
zfhmin,
|
||||
zmm_reg,
|
||||
// tidy-alphabetical-end
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user