diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2022-01-25 16:34:18 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-25 16:34:18 +0000 |
commit | 5f2973fe0e322380bd5f3f4ea35b657efbf86efa (patch) | |
tree | 5c10c91f085cbe16316fd5dff0a611bbd40a0610 /gcc/rust/backend/rust-compile.cc | |
parent | 3de87e620f8714278c273ec91dc6ec22347c188c (diff) | |
parent | c8a0c6eb4b9ea3779f01418cfc97a6761ca4a957 (diff) | |
download | gcc-5f2973fe0e322380bd5f3f4ea35b657efbf86efa.zip gcc-5f2973fe0e322380bd5f3f4ea35b657efbf86efa.tar.gz gcc-5f2973fe0e322380bd5f3f4ea35b657efbf86efa.tar.bz2 |
Merge #891
891: Remove hack to handle forward declared items r=philberty a=philberty
We used to use a compile_fns flag as a method to handle the case of code
such as:
```rust
fn foo() {
bar()
}
fn bar() { }
```
The compile_fns flag when set to false would allow us to do a toplevel
scan to compile the initial fndecl prototype of the functions as a method
of handling the case of the call to bar() within the body of foo.
The backend is setup now that we can 'query_compile' by compiling the
item as required with a cache if we have already done so.
Co-authored-by: Philip Herron <philip.herron@embecosm.com>
Diffstat (limited to 'gcc/rust/backend/rust-compile.cc')
-rw-r--r-- | gcc/rust/backend/rust-compile.cc | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/gcc/rust/backend/rust-compile.cc b/gcc/rust/backend/rust-compile.cc index dcf698a..b0447af 100644 --- a/gcc/rust/backend/rust-compile.cc +++ b/gcc/rust/backend/rust-compile.cc @@ -46,10 +46,7 @@ void CompileCrate::go () { for (auto &item : crate.items) - CompileItem::compile (item.get (), ctx, false); - - for (auto &item : crate.items) - CompileItem::compile (item.get (), ctx, true); + CompileItem::compile (item.get (), ctx); } // rust-compile-block.h @@ -274,7 +271,7 @@ HIRCompileBase::compile_locals_for_block (Resolver::Rib &rib, tree fndecl, if (is_item) { HIR::Item *item = static_cast<HIR::Item *> (decl); - CompileItem::compile (item, ctx, true); + CompileItem::compile (item, ctx); return true; } @@ -528,7 +525,7 @@ HIRCompileBase::compute_address_for_trait_item ( lookup_fntype = lookup_fntype->handle_substitions (mappings); } - return CompileInherentImplItem::Compile (associated_function, ctx, true, + return CompileInherentImplItem::Compile (associated_function, ctx, lookup_fntype, true, locus); } |