[gcc r14-8078] gccrs: borrowck: Execute only with CLI flag

Arthur Cohen cohenarthur@gcc.gnu.org
Tue Jan 16 18:16:45 GMT 2024


https://gcc.gnu.org/g:2f6161e47fbfee41a3d22de21ce58efe5be01d90

commit r14-8078-g2f6161e47fbfee41a3d22de21ce58efe5be01d90
Author: Jakub Dupak <dev@jakubdupak.com>
Date:   Thu Oct 19 11:37:41 2023 +0200

    gccrs: borrowck: Execute only with CLI flag
    
    gcc/rust/ChangeLog:
    
            * lang.opt: CLI flag.
            * rust-session-manager.cc (Session::compile_crate): Guard execution.
    
    Signed-off-by: Jakub Dupak <dev@jakubdupak.com>

Diff:
---
 gcc/rust/lang.opt                | 4 ++++
 gcc/rust/rust-session-manager.cc | 8 +++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/gcc/rust/lang.opt b/gcc/rust/lang.opt
index a02121fcf5c..9a89fab6cb1 100644
--- a/gcc/rust/lang.opt
+++ b/gcc/rust/lang.opt
@@ -202,4 +202,8 @@ frust-name-resolution-2.0
 Rust Var(flag_name_resolution_2_0)
 Use the temporary and experimental name resolution pipeline instead of the stable one
 
+frust-borrowcheck
+Rust Var(flag_borrowcheck)
+Use the WIP borrow checker.
+
 ; This comment is to ensure we retain the blank line above.
diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc
index 8e69fc39aac..1d952911947 100644
--- a/gcc/rust/rust-session-manager.cc
+++ b/gcc/rust/rust-session-manager.cc
@@ -583,9 +583,11 @@ void Session::compile_crate(const char *filename) {
   if (last_step == CompileOptions::CompileStep::BorrowCheck)
     return;
 
-  const bool dump_bir =
-      options.dump_option_enabled(CompileOptions::DumpOption::BIR_DUMP);
-  HIR::BorrowChecker(dump_bir).go(hir);
+  if (flag_borrowcheck) {
+    const bool dump_bir =
+        options.dump_option_enabled(CompileOptions::DumpOption::BIR_DUMP);
+    HIR::BorrowChecker(dump_bir).go(hir);
+  }
 
   if (saw_errors())
     return;


More information about the Gcc-cvs mailing list