Skip to content

Commit 97799ab

Browse files
Global alloc; GlobalCoAllocMeta; type size tests
1 parent ce85c98 commit 97799ab

File tree

17 files changed

+123
-26
lines changed

17 files changed

+123
-26
lines changed

compiler/rustc_ast/src/ast.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ pub use UnsafeSource::*;
2525
use crate::ptr::P;
2626
use crate::token::{self, CommentKind, Delimiter};
2727
use crate::tokenstream::{DelimSpan, LazyAttrTokenStream, TokenStream};
28+
use core::alloc::GlobalCoAllocMeta;
2829
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
2930
use rustc_data_structures::stack::ensure_sufficient_stack;
3031
use rustc_data_structures::sync::Lrc;
@@ -36,7 +37,6 @@ use rustc_span::{Span, DUMMY_SP};
3637
use std::fmt;
3738
use std::mem;
3839
use thin_vec::{thin_vec, ThinVec};
39-
4040
/// A "Label" is an identifier of some point in sources,
4141
/// e.g. in the following code:
4242
///
@@ -3083,26 +3083,26 @@ mod size_asserts {
30833083
static_assert_size!(AssocItem, 104);
30843084
static_assert_size!(AssocItemKind, 32);
30853085
static_assert_size!(Attribute, 32);
3086-
static_assert_size!(Block, 48);
3087-
static_assert_size!(Expr, 72);
3088-
static_assert_size!(ExprKind, 40);
3089-
static_assert_size!(Fn, 184);
3086+
static_assert_size!(Block, 48 + mem::size_of::<GlobalCoAllocMeta>());
3087+
static_assert_size!(Expr, 72 + mem::size_of::<GlobalCoAllocMeta>());
3088+
static_assert_size!(ExprKind, 40 + mem::size_of::<GlobalCoAllocMeta>());
3089+
static_assert_size!(Fn, 184 + 2 * mem::size_of::<GlobalCoAllocMeta>());
30903090
static_assert_size!(ForeignItem, 96);
30913091
static_assert_size!(ForeignItemKind, 24);
30923092
static_assert_size!(GenericArg, 24);
3093-
static_assert_size!(GenericBound, 72);
3094-
static_assert_size!(Generics, 72);
3095-
static_assert_size!(Impl, 184);
3096-
static_assert_size!(Item, 184);
3097-
static_assert_size!(ItemKind, 112);
3093+
static_assert_size!(GenericBound, 72 + mem::size_of::<GlobalCoAllocMeta>());
3094+
static_assert_size!(Generics, 72 + 2 * mem::size_of::<GlobalCoAllocMeta>());
3095+
static_assert_size!(Impl, 184 + 3 * mem::size_of::<GlobalCoAllocMeta>());
3096+
static_assert_size!(Item, 184 + 3 * mem::size_of::<GlobalCoAllocMeta>());
3097+
static_assert_size!(ItemKind, 112 + 3 * mem::size_of::<GlobalCoAllocMeta>());
30983098
static_assert_size!(LitKind, 24);
30993099
static_assert_size!(Local, 72);
31003100
static_assert_size!(MetaItemLit, 40);
31013101
static_assert_size!(Param, 40);
3102-
static_assert_size!(Pat, 88);
3102+
static_assert_size!(Pat, 88 + mem::size_of::<GlobalCoAllocMeta>());
31033103
static_assert_size!(Path, 24);
31043104
static_assert_size!(PathSegment, 24);
3105-
static_assert_size!(PatKind, 64);
3105+
static_assert_size!(PatKind, 64 + mem::size_of::<GlobalCoAllocMeta>());
31063106
static_assert_size!(Stmt, 32);
31073107
static_assert_size!(StmtKind, 16);
31083108
static_assert_size!(Ty, 64);

compiler/rustc_ast/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#![feature(box_patterns)]
1313
#![feature(const_default_impls)]
1414
#![feature(const_trait_impl)]
15+
#![feature(global_co_alloc_meta)]
1516
#![feature(if_let_guard)]
1617
#![feature(let_chains)]
1718
#![feature(min_specialization)]

compiler/rustc_middle/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#![feature(exhaustive_patterns)]
3333
#![feature(generators)]
3434
#![feature(get_mut_unchecked)]
35+
#![feature(global_co_alloc_meta)]
3536
#![feature(if_let_guard)]
3637
#![feature(iter_from_generator)]
3738
#![feature(negative_impls)]

compiler/rustc_middle/src/mir/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
//!
33
//! [rustc dev guide]: https://rustc-dev-guide.rust-lang.org/mir/index.html
44
5+
use core::alloc::GlobalCoAllocMeta;
56
use crate::mir::interpret::{
67
AllocRange, ConstAllocation, ConstValue, ErrorHandled, GlobalAlloc, LitToConstInput, Scalar,
78
};
@@ -3060,7 +3061,7 @@ mod size_asserts {
30603061
use super::*;
30613062
use rustc_data_structures::static_assert_size;
30623063
// tidy-alphabetical-start
3063-
static_assert_size!(BasicBlockData<'_>, 144);
3064+
static_assert_size!(BasicBlockData<'_>, 144 + mem::size_of::<GlobalCoAllocMeta>());
30643065
static_assert_size!(LocalDecl<'_>, 56);
30653066
static_assert_size!(Statement<'_>, 32);
30663067
static_assert_size!(StatementKind<'_>, 16);

compiler/rustc_middle/src/mir/syntax.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
//! This is in a dedicated file so that changes to this file can be reviewed more carefully.
44
//! The intention is that this file only contains datatype declarations, no code.
55
6+
use core::alloc::GlobalCoAllocMeta;
7+
use core::mem;
68
use super::{BasicBlock, Constant, Field, Local, SwitchTargets, UserTypeProjection};
79

810
use crate::mir::coverage::{CodeRegion, CoverageKind};
@@ -1268,6 +1270,6 @@ mod size_asserts {
12681270
static_assert_size!(Operand<'_>, 24);
12691271
static_assert_size!(Place<'_>, 16);
12701272
static_assert_size!(PlaceElem<'_>, 24);
1271-
static_assert_size!(Rvalue<'_>, 40);
1273+
static_assert_size!(Rvalue<'_>, 40 + mem::size_of::<GlobalCoAllocMeta>());
12721274
// tidy-alphabetical-end
12731275
}

compiler/rustc_parse/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
33
#![feature(array_windows)]
44
#![feature(box_patterns)]
5+
#![feature(global_co_alloc_meta)]
56
#![feature(if_let_guard)]
67
#![feature(iter_intersperse)]
78
#![feature(let_chains)]

compiler/rustc_parse/src/parser/attr_wrapper.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use core::alloc::GlobalCoAllocMeta;
2+
use core::mem;
13
use super::{Capturing, FlatToken, ForceCollect, Parser, ReplaceRange, TokenCursor, TrailingToken};
24
use rustc_ast::token::{self, Delimiter, Token, TokenKind};
35
use rustc_ast::tokenstream::{AttrTokenStream, AttributesData, ToAttrTokenStream};
@@ -469,6 +471,6 @@ mod size_asserts {
469471
use rustc_data_structures::static_assert_size;
470472
// tidy-alphabetical-start
471473
static_assert_size!(AttrWrapper, 16);
472-
static_assert_size!(LazyAttrTokenStreamImpl, 144);
474+
static_assert_size!(LazyAttrTokenStreamImpl, 144 + mem::size_of::<GlobalCoAllocMeta>());
473475
// tidy-alphabetical-end
474476
}

compiler/rustc_parse/src/parser/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ mod stmt;
1111
mod ty;
1212

1313
use crate::lexer::UnmatchedBrace;
14+
use core::alloc::GlobalCoAllocMeta;
1415
pub use attr_wrapper::AttrWrapper;
1516
pub use diagnostics::AttemptLocalParseRecovery;
1617
pub(crate) use item::FnParseMode;
@@ -168,7 +169,7 @@ pub struct Parser<'a> {
168169
// This type is used a lot, e.g. it's cloned when matching many declarative macro rules with nonterminals. Make sure
169170
// it doesn't unintentionally get bigger.
170171
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
171-
rustc_data_structures::static_assert_size!(Parser<'_>, 336);
172+
rustc_data_structures::static_assert_size!(Parser<'_>, 336 + 4 * mem::size_of::<GlobalCoAllocMeta>());
172173

173174
/// Stores span information about a closure.
174175
#[derive(Clone)]

compiler/rustc_trait_selection/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#![feature(box_patterns)]
1616
#![feature(control_flow_enum)]
1717
#![feature(drain_filter)]
18+
#![feature(global_co_alloc_meta)]
1819
#![feature(hash_drain_filter)]
1920
#![feature(let_chains)]
2021
#![feature(if_let_guard)]

compiler/rustc_trait_selection/src/traits/fulfill.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
use crate::infer::{InferCtxt, TyOrConstInferVar};
2+
use core::alloc::GlobalCoAllocMeta;
3+
use core::mem;
24
use rustc_data_structures::fx::FxHashMap;
35
use rustc_data_structures::obligation_forest::ProcessResult;
46
use rustc_data_structures::obligation_forest::{Error, ForestObligation, Outcome};
@@ -80,7 +82,7 @@ pub struct PendingPredicateObligation<'tcx> {
8082

8183
// `PendingPredicateObligation` is used a lot. Make sure it doesn't unintentionally get bigger.
8284
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
83-
static_assert_size!(PendingPredicateObligation<'_>, 72);
85+
static_assert_size!(PendingPredicateObligation<'_>, 72 + mem::size_of::<GlobalCoAllocMeta>());
8486

8587
impl<'a, 'tcx> FulfillmentContext<'tcx> {
8688
/// Creates a new fulfillment context.

0 commit comments

Comments
 (0)