]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: borrowck: Link Polonius and run it
authorJakub Dupak <dev@jakubdupak.com>
Tue, 27 Feb 2024 22:59:36 +0000 (23:59 +0100)
committerArthur Cohen <arthur.cohen@embecosm.com>
Mon, 17 Mar 2025 15:35:22 +0000 (16:35 +0100)
gcc/rust/ChangeLog:

* Make-lang.in: Link Polonius.
* checks/errors/borrowck/rust-borrow-checker.cc: Run Polonius.

Signed-off-by: Jakub Dupak <dev@jakubdupak.com>
gcc/rust/Make-lang.in
gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc

index 795e899f51ce469f8c3c5efd2e0fff153a15c823..4f164c9753a6fe1ea0673f0c71e0b1bc3fbc8903 100644 (file)
@@ -225,12 +225,15 @@ rust_OBJS = $(RUST_ALL_OBJS) rust/rustspec.o
 
 LIBPROC_MACRO_INTERNAL = ../libgrust/libproc_macro_internal/libproc_macro_internal.a
 LIBFORMAT_PARSER = ../libgrust/libformat_parser/debug/liblibformat_parser.a
+LIBFFI_POLONIUS = rust/libffi_polonius.a
 
 # The compiler itself is called crab1
-crab1$(exeext): $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBDEPS) $(LIBPROC_MACRO_INTERNAL) $(LIBFORMAT_PARSER) $(rust.prev)
+crab1$(exeext): $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBDEPS) $(LIBPROC_MACRO_INTERNAL) $(LIBFORMAT_PARSER) $(LIBFFI_POLONIUS) $(rust.prev)
        @$(call LINK_PROGRESS,$(INDEX.rust),start)
        +$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
-             $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBS) $(CRAB1_LIBS) $(LIBPROC_MACRO_INTERNAL) $(LIBFORMAT_PARSER) $(BACKENDLIBS)
+             $(RUST_ALL_OBJS) attribs.o $(BACKEND) \
+             $(LIBS) $(CRAB1_LIBS) $(LIBPROC_MACRO_INTERNAL) $(LIBFORMAT_PARSER) $(LIBFFI_POLONIUS) \
+                 $(BACKENDLIBS)
        @$(call LINK_PROGRESS,$(INDEX.rust),end)
 
 # Build hooks.
@@ -493,4 +496,4 @@ rust/libffi_polonius.a: \
        rust/checks/errors/borrowck/ffi-polonius/Cargo.toml \
        $(wildcard $(srcdir)/rust/checks/errors/borrowck/ffi-polonius/src/*)
        cargo build --manifest-path $(srcdir)/rust/checks/errors/borrowck/ffi-polonius/Cargo.toml --release --target-dir rust/ffi-polonius
-       cp rust/ffi-polonius/release/libffi_polonius.a rust/libffi_polonius.a
\ No newline at end of file
+       cp rust/ffi-polonius/release/libffi_polonius.a rust/libffi_polonius.a
index e41cea33b3b60c338151135d01167b4f50d7d21e..12334b11dd7d7a56f452848bd9df47bc83cdaf66 100644 (file)
@@ -154,6 +154,8 @@ BorrowChecker::go (HIR::Crate &crate)
          dump_facts_to_file ("placeholder",
                              &Polonius::Facts::dump_placeholder);
        }
+
+      Polonius::polonius_run (facts.freeze (), rust_be_debug_p ());
     }
 
   for (auto closure ATTRIBUTE_UNUSED : collector.get_closures ())