aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Dupak <dev@jakubdupak.com>2024-02-27 23:59:36 +0100
committerArthur Cohen <arthur.cohen@embecosm.com>2025-03-17 16:35:22 +0100
commitca7be65ae07c193575f3525cc3c14376ceeb561a (patch)
treed6a8ef05d10312e57e46e9595fffbe806f204415 /gcc
parent94f826dccee64927d2aa5ec70a42a28ce3514d95 (diff)
downloadgcc-ca7be65ae07c193575f3525cc3c14376ceeb561a.zip
gcc-ca7be65ae07c193575f3525cc3c14376ceeb561a.tar.gz
gcc-ca7be65ae07c193575f3525cc3c14376ceeb561a.tar.bz2
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 <dev@jakubdupak.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/Make-lang.in9
-rw-r--r--gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc2
2 files changed, 8 insertions, 3 deletions
diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in
index 795e899..4f164c9 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 e41cea3..12334b1 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 ())