From: Jakub Dupak Date: Tue, 27 Feb 2024 22:59:36 +0000 (+0100) Subject: gccrs: borrowck: Link Polonius and run it X-Git-Tag: basepoints/gcc-16~1457 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ca7be65ae07c193575f3525cc3c14376ceeb561a;p=thirdparty%2Fgcc.git gccrs: borrowck: Link Polonius and run it gcc/rust/ChangeLog: * Make-lang.in: Link Polonius. * checks/errors/borrowck/rust-borrow-checker.cc: Run Polonius. Signed-off-by: Jakub Dupak --- 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 ())