diff --git a/ci/linkcheck.sh b/ci/linkcheck.sh index 14cd53ac9..5f523f874 100755 --- a/ci/linkcheck.sh +++ b/ci/linkcheck.sh @@ -14,6 +14,9 @@ if [ "$GITHUB_EVENT_NAME" = "schedule" ] ; then # running in scheduled job echo "Doing full link check." elif [ "$GITHUB_EVENT_NAME" = "pull_request" ] ; then # running in PR CI build + echo "*** WARNING: linkcheck temporarily disabled due to bugs ***" + exit 0 + if [ -z "$BASE_SHA" ]; then echo "error: unexpected state: BASE_SHA must be non-empty in CI" exit 1 @@ -25,6 +28,9 @@ elif [ "$GITHUB_EVENT_NAME" = "pull_request" ] ; then # running in PR CI build echo "Checking files changed since $BASE_SHA: $CHANGED_FILES" else # running locally + echo "*** WARNING: linkcheck temporarily disabled due to bugs ***" + exit 0 + COMMIT_RANGE=master... CHANGED_FILES=$(git diff --name-only $COMMIT_RANGE | sed 's#^src/##' | tr '\n' ' ') FLAGS="-f $CHANGED_FILES" diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 6b70038a3..7950e4687 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -194,7 +194,7 @@ - [Prologue](./part-5-intro.md) - [MIR optimizations](./mir/optimizations.md) -- [Debugging](./mir/debugging.md) +- [Debugging MIR](./mir/debugging.md) - [Constant evaluation](./const-eval.md) - [Interpreter](./const-eval/interpret.md) - [Monomorphization](./backend/monomorph.md) diff --git a/src/mir/dataflow.md b/src/mir/dataflow.md index 15bfd6aed..7bd0f0aab 100644 --- a/src/mir/dataflow.md +++ b/src/mir/dataflow.md @@ -127,16 +127,18 @@ value will be `true`, since our analysis is done as soon as we determine that `transmute` has been called. Our join operator will just be the boolean OR (`||`) operator. We use OR and not AND because of this case: -``` +```rust +# unsafe fn example(some_cond: bool) { let x = if some_cond { - std::mem::transmute(0_i32); // transmute was called! + std::mem::transmute::(0_i32) // transmute was called! } else { - 1_u32; // transmute was not called + 1_u32 // transmute was not called }; // Has transmute been called by this point? We conservatively approximate that // as yes, and that is why we use the OR operator. println!("x: {}", x); +# } ``` ## Inspecting the Results of a Dataflow Analysis @@ -219,7 +221,7 @@ the example below: ["gen-kill" problems]: https://en.wikipedia.org/wiki/Data-flow_analysis#Bit_vector_problems [*Static Program Analysis*]: https://cs.au.dk/~amoeller/spa/ -[Debugging MIR]: ./debugging.html +[Debugging MIR]: ./debugging.md [`AnalysisDomain`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir_dataflow/trait.AnalysisDomain.html [`Analysis`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir_dataflow/trait.Analysis.html [`Engine`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir_dataflow/struct.Engine.html