From: Jakub Dupak <d...@jakubdupak.com>

gcc/rust/ChangeLog:

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

Signed-off-by: Jakub Dupak <d...@jakubdupak.com>
---
 gcc/rust/Make-lang.in                                  | 9 ++++++---
 gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc | 2 ++
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in
index 795e899f51c..4f164c9753a 100644
--- a/gcc/rust/Make-lang.in
+++ b/gcc/rust/Make-lang.in
@@ -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
diff --git a/gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc 
b/gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc
index e41cea33b3b..12334b11dd7 100644
--- a/gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc
+++ b/gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc
@@ -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 ())
-- 
2.45.2

Reply via email to