From cdf2cd9af4746b88df6fcaa7890c96796202bdc0 Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Tue, 24 Oct 2023 16:16:34 +0200 Subject: [PATCH] gccrs: Add two new steps to compile process Add the ast validation and feature gating steps to the compile pipeline. gcc/rust/ChangeLog: * lang.opt: Add the new compile options and update the enum values. * rust-session-manager.h (struct CompileOptions): Add the new steps to the enumeration. Signed-off-by: Pierre-Emmanuel Patry --- gcc/rust/lang.opt | 26 ++++++++++++++++---------- gcc/rust/rust-session-manager.h | 2 ++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/gcc/rust/lang.opt b/gcc/rust/lang.opt index 9a89fab6cb11..35798f5e01a1 100644 --- a/gcc/rust/lang.opt +++ b/gcc/rust/lang.opt @@ -157,7 +157,7 @@ Rust Joined Separate frust-compile-until= Rust Joined RejectNegative Enum(frust_compile_until) Var(flag_rust_compile_until) --frust-compile-until=[ast|attributecheck|expansion|nameresolution|lowering|typecheck|privacy|unsafety|const|compilation|end] The pipeline will run up until this stage when compiling Rust code +-frust-compile-until=[ast|attributecheck|expansion|astvalidation|featuregating|nameresolution|lowering|typecheck|privacy|unsafety|const|borrowcheck|compilation|end] The pipeline will run up until this stage when compiling Rust code Enum Name(frust_compile_until) Type(int) UnknownError(unknown rust compile-until %qs) @@ -172,31 +172,37 @@ EnumValue Enum(frust_compile_until) String(expansion) Value(2) EnumValue -Enum(frust_compile_until) String(nameresolution) Value(3) +Enum(frust_compile_until) String(astvalidation) Value(3) EnumValue -Enum(frust_compile_until) String(lowering) Value(4) +Enum(frust_compile_until) String(featuregating) Value(4) EnumValue -Enum(frust_compile_until) String(typecheck) Value(5) +Enum(frust_compile_until) String(nameresolution) Value(5) EnumValue -Enum(frust_compile_until) String(privacy) Value(6) +Enum(frust_compile_until) String(lowering) Value(6) EnumValue -Enum(frust_compile_until) String(unsafety) Value(7) +Enum(frust_compile_until) String(typecheck) Value(7) EnumValue -Enum(frust_compile_until) String(const) Value(8) +Enum(frust_compile_until) String(privacy) Value(8) EnumValue -Enum(frust_compile_until) String(borrowcheck) Value(9) +Enum(frust_compile_until) String(unsafety) Value(9) EnumValue -Enum(frust_compile_until) String(compilation) Value(10) +Enum(frust_compile_until) String(const) Value(10) EnumValue -Enum(frust_compile_until) String(end) Value(11) +Enum(frust_compile_until) String(borrowcheck) Value(11) + +EnumValue +Enum(frust_compile_until) String(compilation) Value(12) + +EnumValue +Enum(frust_compile_until) String(end) Value(13) frust-name-resolution-2.0 Rust Var(flag_name_resolution_2_0) diff --git a/gcc/rust/rust-session-manager.h b/gcc/rust/rust-session-manager.h index e95ed11416f7..41aad6079058 100644 --- a/gcc/rust/rust-session-manager.h +++ b/gcc/rust/rust-session-manager.h @@ -249,6 +249,8 @@ struct CompileOptions Ast, AttributeCheck, Expansion, + ASTValidation, + FeatureGating, NameResolution, Lowering, TypeCheck, -- 2.47.2