| Age | Commit message (Collapse) | Author | Lines |
|
|
|
Implementing the Graph traits for the BasicCoverageBlock
graph.
optimized replacement of counters with expressions plus new BCB graphviz
* Avoid adding coverage to unreachable blocks.
* Special case for Goto at the end of the body. Make it non-reportable.
Improved debugging and formatting options (from env)
Don't automatically add counters to BCBs without CoverageSpans. They may
still get counters but only if there are dependencies from
other BCBs that have spans, I think.
Make CodeRegions optional for Counters too. It is
possible to inject counters (`llvm.instrprof.increment` intrinsic calls
without corresponding code regions in the coverage map. An expression
can still uses these counter values.
Refactored instrument_coverage.rs -> instrument_coverage/mod.rs, and
then broke up the mod into multiple files.
Compiling with coverage, with the expression optimization, works on
the json5format crate and its dependencies.
Refactored debug features from mod.rs to debug.rs
|
|
|
|
|
|
|
|
|
|
Changes from 68965 extended the kind of instances that are being
inlined. For some of those, the `instance_mir` returns a MIR body that
is already expressed in terms of the types found in substitution array,
and doesn't need further substitution.
Use `substs_for_mir_body` to take that into account.
|
|
|
|
make intern_const_alloc_recursive return error
fix #78655
r? ``@oli-obk``
|
|
fix a couple of clippy warnings:
filter_next
manual_strip
redundant_static_lifetimes
single_char_pattern
unnecessary_cast
unused_unit
op_ref
redundant_closure
useless_conversion
|
|
Inliner copies the unevaluated constants from the callee body to the
caller at the point where decision to inline is yet to be made. The
constants will be unnecessary if inlining were to fail.
Organize the code moving items from callee to the caller together in one
place to avoid the issue.
|
|
|
|
|
|
filter_next
manual_strip
redundant_static_lifetimes
single_char_pattern
unnecessary_cast
unused_unit
op_ref
redundant_closure
useless_conversion
|
|
|
|
This is cheaper than creating a null-`ScalarInt` and comparing
and then just throwing it away.
|
|
|
|
|
|
|
|
|
|
Rollup of 7 pull requests
Successful merges:
- #77950 (Add support for SHA256 source file hashing)
- #78624 (Sync rustc_codegen_cranelift)
- #78626 (Improve errors about #[deprecated] attribute)
- #78659 (Corrected suggestion for generic parameters in `function_item_references` lint)
- #78687 (Suggest library/std when running all stage 0 tests)
- #78699 (Show more error information in lldb_batchmode)
- #78709 (Fix panic in bootstrap for non-workspace path dependencies.)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Corrected suggestion for generic parameters in `function_item_references` lint
This commit handles functions with generic type parameters like you pointed out as well as const generics. Also this is probably a minor thing, but the type alias you used in the example doesn't show up so the suggestion right now would be `size_of::<[u8; 16]> as fn() ->`. This is because the lint checker works with MIR instead of HIR. I don't think we can get the alias at that point, but let me know if I'm wrong and there's a way to fix this. Also I put you as the reviewer, but I'm not sure if you want to review it or if it makes more sense to ask one of the original reviewers of this lint.
closes #78571
|
|
Properly handle lint spans after MIR inlining
The first commit shows what happens when we apply mir inlining and then cause lints on the inlined MIR.
The second commit fixes that.
r? `@wesleywiser`
|
|
Retagging: do not retag 'raw reborrows'
When doing `&raw const (*raw_ptr).field`, we do not want any retagging; the original provenance should be fully preserved.
Fixes https://github.com/rust-lang/miri/issues/1608
Test added by https://github.com/rust-lang/miri/pull/1614
Not sure whom to ask for review on this... `@oli-obk` can you have a look? Or maybe highfive makes a good choice.^^
|
|
|
|
This lint was incorrectly suggesting casting a function to a pointer without
specifying generic type parameters or const generics. This would cause a
compiler error since the missing parameters couldn't be inferred. This commit
fixed the suggestion and added a few tests with generics.
|
|
No functional changes intended.
|
|
Add option to customize the nll-facts' folder location
This PR adds a `nll-facts-dir` option to specify the location of the directory in which NLL facts are dumped into. It works the same way `dump-mir-dir` controls the location used by the `dump-mir` option.
|
|
The validator in visit_local asserts that local has a stroage when used,
but visit_local is never called so validation is ineffective.
Use super_statement and super_terminator to ensure that locals are visited.
|
|
|
|
validator: Extend aliasing check to a call terminator
|
|
TypeVisitor: use `std::ops::ControlFlow` instead of `bool`
Implements MCP rust-lang/compiler-team#374.
Blocked on FCP in rust-lang/compiler-team#374.
r? `@lcnr` cc `@jonas-schievink`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fix typos
|
|
fix a comment in validity check
A few things changed since that comment was written; update it to the current reality.
r? @oli-obk
|
|
|
|
|
|
Move "mutable thing in const" check from interning to validity
This moves the check for mutable things (such as `UnsafeCell` or `&mut`) in a`const` from interning to validity. That means we can give more targeted error messages (pointing out *where* the problem lies), and we can simplify interning a bit.
Also fix the interning mode used for promoteds in statics.
r? @oli-obk
|
|
Separate unsized locals
Closes #71694
Takes over again #72029 and #74971
cc @RalfJung @oli-obk @pnkfelix @eddyb as they've participated in previous reviews of this PR.
|
|
|
|
|
|
|
|
|
|
added a lint against function references
this lint suggests casting function references to `*const ()`
closes #75239
r? `@RalfJung`
|
|
Also updated tests accordingly and tweaked some wording in the lint declaration.
|