Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix MIR lowering evaluation order and soundness bug #65608

Merged
merged 3 commits into from Nov 12, 2019

Conversation

@matthewjasper
Copy link
Contributor

matthewjasper commented Oct 19, 2019

  • Fixes a soundness issue with built-in index operations
  • Ensures correct evaluation order of assignment expressions where the RHS is a FRU or is a use of a local of reference type.
  • Removes an unnecessary symbol to string conversion

closes #65909
closes #65910

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Oct 19, 2019

r? @estebank

(rust_highfive has picked a reviewer for you, use r? to override)

@matthewjasper matthewjasper force-pushed the matthewjasper:mir-eval-order branch from ce395ab to 232f060 Oct 19, 2019
@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Oct 19, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-10-19T20:20:26.1963418Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-19T20:20:26.2153110Z ##[command]git config gc.auto 0
2019-10-19T20:20:26.2242131Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-19T20:20:26.2308531Z ##[command]git config --get-all http.proxy
2019-10-19T20:20:26.2462781Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/65608/merge:refs/remotes/pull/65608/merge
---
2019-10-19T21:25:45.6671739Z .................................................................................................... 1600/9204
2019-10-19T21:25:51.3327545Z .................................................................................................... 1700/9204
2019-10-19T21:26:05.0107884Z ................................i...............i................................................... 1800/9204
2019-10-19T21:26:12.9717514Z .................................................................................................... 1900/9204
2019-10-19T21:26:28.0293414Z ......................iiiii......................................................................... 2000/9204
2019-10-19T21:26:39.3810689Z .................................................................................................... 2200/9204
2019-10-19T21:26:42.1991577Z .................................................................................................... 2300/9204
2019-10-19T21:26:47.5964176Z .................................................................................................... 2400/9204
2019-10-19T21:27:11.0181555Z .................................................................................................... 2500/9204
---
2019-10-19T21:30:15.7353954Z .........................i...............i.......................................................... 4800/9204
2019-10-19T21:30:28.2530136Z .................................................................................................... 4900/9204
2019-10-19T21:30:35.0127829Z .................................................................................................... 5000/9204
2019-10-19T21:30:44.9896423Z .................................................................................................... 5100/9204
2019-10-19T21:30:52.9243610Z .........................ii.ii...................................................................... 5200/9204
2019-10-19T21:31:03.3455422Z .................................................................................................... 5400/9204
2019-10-19T21:31:14.1498388Z ...........................................................................................i........ 5500/9204
2019-10-19T21:31:22.8698940Z .................................................................................................... 5600/9204
2019-10-19T21:31:28.0378808Z .................................................................................................... 5700/9204
2019-10-19T21:31:28.0378808Z .................................................................................................... 5700/9204
2019-10-19T21:31:39.3420055Z .........................................................................................ii...i..ii. 5800/9204
2019-10-19T21:32:07.1360587Z .................................................................................................... 6000/9204
2019-10-19T21:32:17.0952889Z .................................................................................................... 6100/9204
2019-10-19T21:32:24.5558487Z .................................................................................................... 6200/9204
2019-10-19T21:32:24.5558487Z .................................................................................................... 6200/9204
2019-10-19T21:32:39.4049932Z ...........i..ii.................................................................................... 6300/9204
2019-10-19T21:33:00.6867227Z .......................................................................i............................ 6500/9204
2019-10-19T21:33:02.5168395Z .................................................................................................... 6600/9204
2019-10-19T21:33:05.1170838Z ..............................................i..................................................... 6700/9204
2019-10-19T21:33:08.7630452Z .................................................................................................... 6800/9204
---
2019-10-19T21:37:49.4934054Z running 61 tests
2019-10-19T21:37:55.2233631Z ........................................................F....
2019-10-19T21:37:55.2235696Z failures:
2019-10-19T21:37:55.2236055Z 
2019-10-19T21:37:55.2250945Z ---- [mir-opt] mir-opt/storage_live_dead_in_statics.rs stdout ----
2019-10-19T21:37:55.2251221Z [ERROR compiletest::runtest] None
2019-10-19T21:37:55.2251773Z thread '[mir-opt] mir-opt/storage_live_dead_in_statics.rs' panicked at 'Did not find expected line, error: Mismatch in lines
2019-10-19T21:37:55.2251972Z Current block: None
2019-10-19T21:37:55.2252341Z Actual Line: "    let _1: &\'static Foo;"
2019-10-19T21:37:55.2252767Z Expected Line: "   let mut _1: &\'static Foo;"
2019-10-19T21:37:55.2252954Z Test Name: rustc.XXX.mir_map.0.mir
2019-10-19T21:37:55.2253259Z ... (elided)
2019-10-19T21:37:55.2253628Z    let mut _0: &'static Foo;
2019-10-19T21:37:55.2254149Z    let mut _1: &'static Foo;
2019-10-19T21:37:55.2254346Z    let _2: Foo;
2019-10-19T21:37:55.2254346Z    let _2: Foo;
2019-10-19T21:37:55.2255027Z    let mut _3: &'static [(u32, u32)];
2019-10-19T21:37:55.2256329Z    let mut _4: &'static [(u32, u32); 42];
2019-10-19T21:37:55.2256761Z    let mut _5: &'static [(u32, u32); 42];
2019-10-19T21:37:55.2256949Z    let _6: [(u32, u32); 42];
2019-10-19T21:37:55.2257113Z    let mut _7: (u32, u32);
2019-10-19T21:37:55.2257257Z    let mut _8: (u32, u32);
2019-10-19T21:37:55.2257394Z    let mut _9: (u32, u32);
2019-10-19T21:37:55.2257572Z    let mut _10: (u32, u32);
2019-10-19T21:37:55.2257714Z    let mut _11: (u32, u32);
2019-10-19T21:37:55.2257854Z    let mut _12: (u32, u32);
2019-10-19T21:37:55.2258020Z    let mut _13: (u32, u32);
2019-10-19T21:37:55.2258161Z    let mut _14: (u32, u32);
2019-10-19T21:37:55.2258296Z    let mut _15: (u32, u32);
2019-10-19T21:37:55.2258450Z    let mut _16: (u32, u32);
2019-10-19T21:37:55.2258588Z    let mut _17: (u32, u32);
2019-10-19T21:37:55.2258741Z    let mut _18: (u32, u32);
2019-10-19T21:37:55.2258896Z    let mut _19: (u32, u32);
2019-10-19T21:37:55.2259035Z    let mut _20: (u32, u32);
2019-10-19T21:37:55.2259171Z    let mut _21: (u32, u32);
2019-10-19T21:37:55.2260246Z    let mut _22: (u32, u32);
2019-10-19T21:37:55.2260459Z    let mut _23: (u32, u32);
2019-10-19T21:37:55.2260607Z    let mut _24: (u32, u32);
2019-10-19T21:37:55.2260768Z    let mut _25: (u32, u32);
2019-10-19T21:37:55.2260907Z    let mut _26: (u32, u32);
2019-10-19T21:37:55.2261059Z    let mut _27: (u32, u32);
2019-10-19T21:37:55.2261198Z    let mut _28: (u32, u32);
2019-10-19T21:37:55.2261337Z    let mut _29: (u32, u32);
2019-10-19T21:37:55.2261491Z    let mut _30: (u32, u32);
2019-10-19T21:37:55.2261631Z    let mut _31: (u32, u32);
2019-10-19T21:37:55.2261771Z    let mut _32: (u32, u32);
2019-10-19T21:37:55.2261923Z    let mut _33: (u32, u32);
2019-10-19T21:37:55.2262061Z    let mut _34: (u32, u32);
2019-10-19T21:37:55.2262434Z    let mut _35: (u32, u32);
2019-10-19T21:37:55.2262591Z    let mut _36: (u32, u32);
2019-10-19T21:37:55.2262728Z    let mut _37: (u32, u32);
2019-10-19T21:37:55.2262867Z    let mut _38: (u32, u32);
2019-10-19T21:37:55.2263020Z    let mut _39: (u32, u32);
2019-10-19T21:37:55.2263162Z    let mut _40: (u32, u32);
2019-10-19T21:37:55.2263405Z    let mut _41: (u32, u32);
2019-10-19T21:37:55.2263598Z    let mut _42: (u32, u32);
2019-10-19T21:37:55.2263737Z    let mut _43: (u32, u32);
2019-10-19T21:37:55.2263876Z    let mut _44: (u32, u32);
2019-10-19T21:37:55.2264032Z    let mut _45: (u32, u32);
2019-10-19T21:37:55.2264171Z    let mut _46: (u32, u32);
2019-10-19T21:37:55.2264326Z    let mut _47: (u32, u32);
2019-10-19T21:37:55.2264463Z    let mut _48: (u32, u32);
2019-10-19T21:37:55.2264600Z    bb0: {
2019-10-19T21:37:55.2264755Z        StorageLive(_1);
2019-10-19T21:37:55.2265188Z        StorageLive(_2);
2019-10-19T21:37:55.2265335Z        StorageLive(_3);
2019-10-19T21:37:55.2265492Z        StorageLive(_4);
2019-10-19T21:37:55.2265645Z        StorageLive(_5);
2019-10-19T21:37:55.2265781Z        StorageLive(_6);
2019-10-19T21:37:55.2265935Z        StorageLive(_7);
2019-10-19T21:37:55.2266075Z        _7 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2266213Z        StorageLive(_8);
2019-10-19T21:37:55.2266377Z        _8 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2266519Z        StorageLive(_9);
2019-10-19T21:37:55.2266658Z        _9 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2266816Z        StorageLive(_10);
2019-10-19T21:37:55.2266954Z        _10 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2267115Z        StorageLive(_11);
2019-10-19T21:37:55.2267277Z        _11 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2267414Z        StorageLive(_12);
2019-10-19T21:37:55.2267550Z        _12 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2267709Z        StorageLive(_13);
2019-10-19T21:37:55.2267847Z        _13 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2268000Z        StorageLive(_14);
2019-10-19T21:37:55.2271537Z        _14 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2271795Z        StorageLive(_15);
2019-10-19T21:37:55.2271952Z        _15 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2272083Z        StorageLive(_16);
2019-10-19T21:37:55.2272210Z        _16 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2272363Z        StorageLive(_17);
2019-10-19T21:37:55.2273348Z        _17 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2273521Z        StorageLive(_18);
2019-10-19T21:37:55.2273672Z        _18 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2273802Z        StorageLive(_19);
2019-10-19T21:37:55.2273928Z        _19 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2274069Z        StorageLive(_20);
2019-10-19T21:37:55.2274197Z        _20 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2274321Z        StorageLive(_21);
2019-10-19T21:37:55.2274462Z        _21 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2274772Z        StorageLive(_22);
2019-10-19T21:37:55.2275940Z        _22 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2276174Z        StorageLive(_23);
2019-10-19T21:37:55.2276320Z        _23 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2276473Z        StorageLive(_24);
2019-10-19T21:37:55.2276612Z        _24 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2276752Z        StorageLive(_25);
2019-10-19T21:37:55.2276976Z        _25 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2277125Z        StorageLive(_26);
2019-10-19T21:37:55.2277776Z        _26 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2278042Z        StorageLive(_27);
2019-10-19T21:37:55.2278190Z        _27 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2278332Z        StorageLive(_28);
2019-10-19T21:37:55.2278488Z        _28 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2278626Z        StorageLive(_29);
2019-10-19T21:37:55.2279962Z        _29 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2280157Z        StorageLive(_30);
2019-10-19T21:37:55.2280283Z        _30 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2280411Z        StorageLive(_31);
2019-10-19T21:37:55.2280731Z        _31 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2280858Z        StorageLive(_32);
2019-10-19T21:37:55.2281000Z        _32 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2281127Z        StorageLive(_33);
2019-10-19T21:37:55.2281252Z        _33 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2281478Z        StorageLive(_34);
2019-10-19T21:37:55.2281943Z        _34 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2282195Z        StorageLive(_35);
2019-10-19T21:37:55.2282424Z        _35 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2282633Z        StorageLive(_36);
2019-10-19T21:37:55.2282824Z        _36 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2283048Z        StorageLive(_37);
2019-10-19T21:37:55.2283240Z        _37 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2283431Z        StorageLive(_38);
2019-10-19T21:37:55.2283658Z        _38 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2283849Z        StorageLive(_39);
2019-10-19T21:37:55.2284040Z        _39 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2284291Z        StorageLive(_40);
2019-10-19T21:37:55.2284500Z        _40 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2284710Z        StorageLive(_41);
2019-10-19T21:37:55.2284941Z        _41 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2285605Z        StorageLive(_42);
2019-10-19T21:37:55.2286981Z        _42 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2287034Z        StorageLive(_43);
2019-10-19T21:37:55.2287137Z        _43 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2287180Z        StorageLive(_44);
2019-10-19T21:37:55.2287224Z        _44 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2287287Z        StorageLive(_45);
2019-10-19T21:37:55.2287331Z        _45 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2287375Z        StorageLive(_46);
2019-10-19T21:37:55.2287436Z        _46 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2287483Z        StorageLive(_47);
2019-10-19T21:37:55.2287527Z        _47 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2287582Z        StorageLive(_48);
2019-10-19T21:37:55.2287643Z        _48 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2287743Z        _6 = [move _7, move _8, move _9, move _10, move _11, move _12, move _13, move _14, move _15, move _16, move _17, move _18, move _19, move _20, move _21, move _22, move _23, move _24, move _25, move _26, move _27, move _28, move _29, move _30, move _31, move _32, move _33, move _34, move _35, move _36, move _37, move _38, move _39, move _40, move _41, move _42, move _43, move _44, move _45, move _46, move _47, move _48];
2019-10-19T21:37:55.2287850Z        _5 = &_6;
2019-10-19T21:37:55.2287897Z        _4 = &(*_5);
2019-10-19T21:37:55.2288350Z        _3 = move _4 as &'static [(u32, u32)] (Pointer(Unsize));
2019-10-19T21:37:55.2288428Z        _2 = Foo { tup: const "hi", data: move _3 };
2019-10-19T21:37:55.2288478Z        _1 = &_2;
2019-10-19T21:37:55.2288521Z        _0 = &(*_1);
2019-10-19T21:37:55.2288583Z        StorageDead(_5);
2019-10-19T21:37:55.2288627Z        StorageDead(_1);
2019-10-19T21:37:55.2288739Z    }
2019-10-19T21:37:55.2288782Z Actual:
2019-10-19T21:37:55.2288782Z Actual:
2019-10-19T21:37:55.2289146Z static  XXX: &'static Foo = {
2019-10-19T21:37:55.2289326Z     let mut _0: &'static Foo;
2019-10-19T21:37:55.2289520Z     let _1: &'static Foo;
2019-10-19T21:37:55.2289569Z     let _2: Foo;
2019-10-19T21:37:55.2289758Z     let mut _3: &'static [(u32, u32)];
2019-10-19T21:37:55.2289964Z     let mut _4: &'static [(u32, u32); 42];
2019-10-19T21:37:55.2290154Z     let _5: &'static [(u32, u32); 42];
2019-10-19T21:37:55.2290196Z     let _6: [(u32, u32); 42];
2019-10-19T21:37:55.2290236Z     let mut _7: (u32, u32);
2019-10-19T21:37:55.2290291Z     let mut _8: (u32, u32);
2019-10-19T21:37:55.2290330Z     let mut _9: (u32, u32);
2019-10-19T21:37:55.2290369Z     let mut _10: (u32, u32);
2019-10-19T21:37:55.2290425Z     let mut _11: (u32, u32);
2019-10-19T21:37:55.2290464Z     let mut _12: (u32, u32);
2019-10-19T21:37:55.2290502Z     let mut _13: (u32, u32);
2019-10-19T21:37:55.2290681Z     let mut _14: (u32, u32);
2019-10-19T21:37:55.2290721Z     let mut _15: (u32, u32);
2019-10-19T21:37:55.2290759Z     let mut _16: (u32, u32);
2019-10-19T21:37:55.2290798Z     let mut _17: (u32, u32);
2019-10-19T21:37:55.2290852Z     let mut _18: (u32, u32);
2019-10-19T21:37:55.2290944Z     let mut _19: (u32, u32);
2019-10-19T21:37:55.2290987Z     let mut _20: (u32, u32);
2019-10-19T21:37:55.2291042Z     let mut _21: (u32, u32);
2019-10-19T21:37:55.2291080Z     let mut _22: (u32, u32);
2019-10-19T21:37:55.2291119Z     let mut _23: (u32, u32);
2019-10-19T21:37:55.2291173Z     let mut _24: (u32, u32);
2019-10-19T21:37:55.2291212Z     let mut _25: (u32, u32);
2019-10-19T21:37:55.2291250Z     let mut _26: (u32, u32);
2019-10-19T21:37:55.2291307Z     let mut _27: (u32, u32);
2019-10-19T21:37:55.2291346Z     let mut _28: (u32, u32);
2019-10-19T21:37:55.2291384Z     let mut _29: (u32, u32);
2019-10-19T21:37:55.2291422Z     let mut _30: (u32, u32);
2019-10-19T21:37:55.2291477Z     let mut _31: (u32, u32);
2019-10-19T21:37:55.2291522Z     let mut _32: (u32, u32);
2019-10-19T21:37:55.2291559Z     let mut _33: (u32, u32);
2019-10-19T21:37:55.2291613Z     let mut _34: (u32, u32);
2019-10-19T21:37:55.2291653Z     let mut _35: (u32, u32);
2019-10-19T21:37:55.2291690Z     let mut _36: (u32, u32);
2019-10-19T21:37:55.2291750Z     let mut _37: (u32, u32);
2019-10-19T21:37:55.2291789Z     let mut _38: (u32, u32);
2019-10-19T21:37:55.2291828Z     let mut _39: (u32, u32);
2019-10-19T21:37:55.2291866Z     let mut _40: (u32, u32);
2019-10-19T21:37:55.2291920Z     let mut _41: (u32, u32);
2019-10-19T21:37:55.2291958Z     let mut _42: (u32, u32);
2019-10-19T21:37:55.2291997Z     let mut _43: (u32, u32);
2019-10-19T21:37:55.2292051Z     let mut _44: (u32, u32);
2019-10-19T21:37:55.2292090Z     let mut _45: (u32, u32);
2019-10-19T21:37:55.2292127Z     let mut _46: (u32, u32);
2019-10-19T21:37:55.2292182Z     let mut _47: (u32, u32);
2019-10-19T21:37:55.2292220Z     let mut _48: (u32, u32);
2019-10-19T21:37:55.2292257Z     bb0: {
2019-10-19T21:37:55.2292301Z         StorageLive(_1);
2019-10-19T21:37:55.2292354Z         StorageLive(_2);
2019-10-19T21:37:55.2292393Z         StorageLive(_3);
2019-10-19T21:37:55.2292431Z         StorageLive(_4);
2019-10-19T21:37:55.2292485Z         StorageLive(_5);
2019-10-19T21:37:55.2292530Z         StorageLive(_6);
2019-10-19T21:37:55.2292567Z         StorageLive(_7);
2019-10-19T21:37:55.2292607Z         _7 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2292660Z         StorageLive(_8);
2019-10-19T21:37:55.2292699Z         _8 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2292737Z         StorageLive(_9);
2019-10-19T21:37:55.2292791Z         _9 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2292831Z         StorageLive(_10);
2019-10-19T21:37:55.2292870Z         _10 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2292923Z         StorageLive(_11);
2019-10-19T21:37:55.2292962Z         _11 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2293001Z         StorageLive(_12);
2019-10-19T21:37:55.2293061Z         _12 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2293101Z         StorageLive(_13);
2019-10-19T21:37:55.2293139Z         _13 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2293178Z         StorageLive(_14);
2019-10-19T21:37:55.2293234Z         _14 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2293281Z         StorageLive(_15);
2019-10-19T21:37:55.2293320Z         _15 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2293375Z         StorageLive(_16);
2019-10-19T21:37:55.2293414Z         _16 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2293452Z         StorageLive(_17);
2019-10-19T21:37:55.2293506Z         _17 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2293544Z         StorageLive(_18);
2019-10-19T21:37:55.2293584Z         _18 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2293622Z         StorageLive(_19);
2019-10-19T21:37:55.2293675Z         _19 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2293714Z         StorageLive(_20);
2019-10-19T21:37:55.2293753Z         _20 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2293871Z         StorageLive(_21);
2019-10-19T21:37:55.2293911Z         _21 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2293949Z         StorageLive(_22);
2019-10-19T21:37:55.2294005Z         _22 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2294044Z         StorageLive(_23);
2019-10-19T21:37:55.2294131Z         _23 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2294190Z         StorageLive(_24);
2019-10-19T21:37:55.2294230Z         _24 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2294310Z         StorageLive(_25);
2019-10-19T21:37:55.2294350Z         _25 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2294406Z         StorageLive(_26);
2019-10-19T21:37:55.2294445Z         _26 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2294484Z         StorageLive(_27);
2019-10-19T21:37:55.2294540Z         _27 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2294578Z         StorageLive(_28);
2019-10-19T21:37:55.2294617Z         _28 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2294680Z         StorageLive(_29);
2019-10-19T21:37:55.2294719Z         _29 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2294757Z         StorageLive(_30);
2019-10-19T21:37:55.2294797Z         _30 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2294852Z         StorageLive(_31);
2019-10-19T21:37:55.2294897Z         _31 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2294936Z         StorageLive(_32);
2019-10-19T21:37:55.2294991Z         _32 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2295030Z         StorageLive(_33);
2019-10-19T21:37:55.2295636Z         _33 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2295734Z         StorageLive(_34);
2019-10-19T21:37:55.2295778Z         _34 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2295823Z         StorageLive(_35);
2019-10-19T21:37:55.2295885Z         _35 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2295930Z         StorageLive(_36);
2019-10-19T21:37:55.2295974Z         _36 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2296018Z         StorageLive(_37);
2019-10-19T21:37:55.2296092Z         _37 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2296136Z         StorageLive(_38);
2019-10-19T21:37:55.2296180Z         _38 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2296241Z         StorageLive(_39);
2019-10-19T21:37:55.2296293Z         _39 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2296338Z         StorageLive(_40);
2019-10-19T21:37:55.2296399Z         _40 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2296444Z         StorageLive(_41);
2019-10-19T21:37:55.2296488Z         _41 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2296532Z         StorageLive(_42);
2019-10-19T21:37:55.2296594Z         _42 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2296638Z         StorageLive(_43);
2019-10-19T21:37:55.2296683Z         _43 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2296745Z         StorageLive(_44);
2019-10-19T21:37:55.2296790Z         _44 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2296834Z         StorageLive(_45);
2019-10-19T21:37:55.2296902Z         _45 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2296947Z         StorageLive(_46);
2019-10-19T21:37:55.2296990Z         _46 = (const 0u32, const 1u32);
2019-10-19T21:37:55.2297034Z         StorageLive(_47);
2019-10-19T21:37:55.2297096Z         _47 = (const 0u32, const 2u32);
2019-10-19T21:37:55.2297149Z         StorageLive(_48);
2019-10-19T21:37:55.2297194Z         _48 = (const 0u32, const 3u32);
2019-10-19T21:37:55.2297303Z         _6 = [move _7, move _8, move _9, move _10, move _11, move _12, move _13, move _14, move _15, move _16, move _17, move _18, move _19, move _20, move _21, move _22, move _23, move _24, move _25, move _26, move _27, move _28, move _29, move _30, move _31, move _32, move _33, move _34, move _35, move _36, move _37, move _38, move _39, move _40, move _41, move _42, move _43, move _44, move _45, move _46, move _47, move _48];
2019-10-19T21:37:55.2297381Z         _5 = &_6;
2019-10-19T21:37:55.2297445Z         _4 = &(*_5);
2019-10-19T21:37:55.2297806Z         _3 = move _4 as &'static [(u32, u32)] (Pointer(Unsize));
2019-10-19T21:37:55.2297994Z         _2 = Foo { tup: const "hi", data: move _3 };
2019-10-19T21:37:55.2298064Z         _1 = &_2;
2019-10-19T21:37:55.2298109Z         _0 = &(*_1);
2019-10-19T21:37:55.2298152Z         StorageDead(_5);
2019-10-19T21:37:55.2298279Z         StorageDead(_1);
2019-10-19T21:37:55.2298371Z     }
2019-10-19T21:37:55.2298371Z     }
2019-10-19T21:37:55.2298430Z     bb1 (cleanup): {
2019-10-19T21:37:55.2298473Z         resume;
2019-10-19T21:37:55.2298933Z }', src/tools/compiletest/src/runtest.rs:3296:13
2019-10-19T21:37:55.2298998Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-10-19T21:37:55.2299031Z 
2019-10-19T21:37:55.2299054Z 
---
2019-10-19T21:37:55.2299608Z 
2019-10-19T21:37:55.2299857Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-10-19T21:37:55.2299890Z 
2019-10-19T21:37:55.2299913Z 
2019-10-19T21:37:55.2301219Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/mir-opt" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/mir-opt" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "mir-opt" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2019-10-19T21:37:55.2301445Z 
2019-10-19T21:37:55.2301469Z 
2019-10-19T21:37:55.2304310Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-10-19T21:37:55.2304374Z Build completed unsuccessfully in 1:10:39
2019-10-19T21:37:55.2304374Z Build completed unsuccessfully in 1:10:39
2019-10-19T21:37:55.2353324Z == clock drift check ==
2019-10-19T21:37:55.2380386Z   local time: Sat Oct 19 21:37:55 UTC 2019
2019-10-19T21:37:55.7762131Z   network time: Sat, 19 Oct 2019 21:37:55 GMT
2019-10-19T21:37:55.7767838Z == end clock drift check ==
2019-10-19T21:38:00.3315906Z 
2019-10-19T21:38:00.3461892Z ##[error]Bash exited with code '1'.
2019-10-19T21:38:00.3502124Z ##[section]Starting: Checkout
2019-10-19T21:38:00.3504129Z ==============================================================================
2019-10-19T21:38:00.3504186Z Task         : Get sources
2019-10-19T21:38:00.3504235Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@matthewjasper matthewjasper force-pushed the matthewjasper:mir-eval-order branch from 232f060 to 0d3a777 Oct 19, 2019
@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Oct 19, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-10-19T22:01:40.4331531Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-19T22:01:40.4560395Z ##[command]git config gc.auto 0
2019-10-19T22:01:40.4628479Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-19T22:01:40.4694888Z ##[command]git config --get-all http.proxy
2019-10-19T22:01:40.4840636Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/65608/merge:refs/remotes/pull/65608/merge
---
2019-10-19T23:00:53.8122496Z .................................................................................................... 1600/9204
2019-10-19T23:00:58.9390461Z .................................................................................................... 1700/9204
2019-10-19T23:01:10.9663811Z ................................i...............i................................................... 1800/9204
2019-10-19T23:01:17.9207762Z .................................................................................................... 1900/9204
2019-10-19T23:01:31.2977449Z ......................iiiii......................................................................... 2000/9204
2019-10-19T23:01:41.0124899Z .................................................................................................... 2200/9204
2019-10-19T23:01:43.3229331Z .................................................................................................... 2300/9204
2019-10-19T23:01:48.0395753Z .................................................................................................... 2400/9204
2019-10-19T23:02:08.8389502Z .................................................................................................... 2500/9204
---
2019-10-19T23:04:50.6222971Z .........................i...............i.......................................................... 4800/9204
2019-10-19T23:05:01.8648563Z .................................................................................................... 4900/9204
2019-10-19T23:05:07.6025066Z .................................................................................................... 5000/9204
2019-10-19T23:05:16.2961688Z .................................................................................................... 5100/9204
2019-10-19T23:05:23.1277226Z .........................ii.ii...................................................................... 5200/9204
2019-10-19T23:05:32.3033390Z .................................................................................................... 5400/9204
2019-10-19T23:05:41.8619732Z ...........................................................................................i........ 5500/9204
2019-10-19T23:05:49.3458615Z .................................................................................................... 5600/9204
2019-10-19T23:05:53.8048054Z .................................................................................................... 5700/9204
2019-10-19T23:05:53.8048054Z .................................................................................................... 5700/9204
2019-10-19T23:06:03.8519855Z .........................................................................................ii...i..ii. 5800/9204
2019-10-19T23:06:28.4742441Z .................................................................................................... 6000/9204
2019-10-19T23:06:37.1630912Z .................................................................................................... 6100/9204
2019-10-19T23:06:42.9366933Z .................................................................................................... 6200/9204
2019-10-19T23:06:42.9366933Z .................................................................................................... 6200/9204
2019-10-19T23:06:55.8057497Z ...........i..ii.................................................................................... 6300/9204
2019-10-19T23:07:14.3105825Z .......................................................................i............................ 6500/9204
2019-10-19T23:07:16.2262589Z .................................................................................................... 6600/9204
2019-10-19T23:07:18.3429644Z ..............................................i..................................................... 6700/9204
2019-10-19T23:07:21.4508003Z .................................................................................................... 6800/9204
---
2019-10-19T23:11:29.9879931Z running 61 tests
2019-10-19T23:11:35.0702574Z .........................................................F...
2019-10-19T23:11:35.0703221Z failures:
2019-10-19T23:11:35.0703350Z 
2019-10-19T23:11:35.0703735Z ---- [mir-opt] mir-opt/storage_live_dead_in_statics.rs stdout ----
2019-10-19T23:11:35.0703925Z [ERROR compiletest::runtest] None
2019-10-19T23:11:35.0704296Z thread '[mir-opt] mir-opt/storage_live_dead_in_statics.rs' panicked at 'Did not find expected line, error: Mismatch in lines
2019-10-19T23:11:35.0704462Z Current block: None
2019-10-19T23:11:35.0704805Z Actual Line: "    let _5: &\'static [(u32, u32); 42];"
2019-10-19T23:11:35.0705146Z Expected Line: "   let mut _5: &\'static [(u32, u32); 42];"
2019-10-19T23:11:35.0705299Z Test Name: rustc.XXX.mir_map.0.mir
2019-10-19T23:11:35.0705546Z ... (elided)
2019-10-19T23:11:35.0705842Z    let mut _0: &'static Foo;
2019-10-19T23:11:35.0706406Z    let _1: &'static Foo;
2019-10-19T23:11:35.0706560Z    let _2: Foo;
2019-10-19T23:11:35.0706560Z    let _2: Foo;
2019-10-19T23:11:35.0706873Z    let mut _3: &'static [(u32, u32)];
2019-10-19T23:11:35.0707199Z    let mut _4: &'static [(u32, u32); 42];
2019-10-19T23:11:35.0707516Z    let mut _5: &'static [(u32, u32); 42];
2019-10-19T23:11:35.0707687Z    let _6: [(u32, u32); 42];
2019-10-19T23:11:35.0707806Z    let mut _7: (u32, u32);
2019-10-19T23:11:35.0707915Z    let mut _8: (u32, u32);
2019-10-19T23:11:35.0708042Z    let mut _9: (u32, u32);
2019-10-19T23:11:35.0708152Z    let mut _10: (u32, u32);
2019-10-19T23:11:35.0708261Z    let mut _11: (u32, u32);
2019-10-19T23:11:35.0709138Z    let mut _12: (u32, u32);
2019-10-19T23:11:35.0709422Z    let mut _13: (u32, u32);
2019-10-19T23:11:35.0709575Z    let mut _14: (u32, u32);
2019-10-19T23:11:35.0709755Z    let mut _15: (u32, u32);
2019-10-19T23:11:35.0709903Z    let mut _16: (u32, u32);
2019-10-19T23:11:35.0710050Z    let mut _17: (u32, u32);
2019-10-19T23:11:35.0710221Z    let mut _18: (u32, u32);
2019-10-19T23:11:35.0710386Z    let mut _19: (u32, u32);
2019-10-19T23:11:35.0710532Z    let mut _20: (u32, u32);
2019-10-19T23:11:35.0710703Z    let mut _21: (u32, u32);
2019-10-19T23:11:35.0710850Z    let mut _22: (u32, u32);
2019-10-19T23:11:35.0711012Z    let mut _23: (u32, u32);
2019-10-19T23:11:35.0711165Z    let mut _24: (u32, u32);
2019-10-19T23:11:35.0711311Z    let mut _25: (u32, u32);
2019-10-19T23:11:35.0711476Z    let mut _26: (u32, u32);
2019-10-19T23:11:35.0711629Z    let mut _27: (u32, u32);
2019-10-19T23:11:35.0711778Z    let mut _28: (u32, u32);
2019-10-19T23:11:35.0711943Z    let mut _29: (u32, u32);
2019-10-19T23:11:35.0712121Z    let mut _30: (u32, u32);
2019-10-19T23:11:35.0712273Z    let mut _31: (u32, u32);
2019-10-19T23:11:35.0712793Z    let mut _32: (u32, u32);
2019-10-19T23:11:35.0712902Z    let mut _33: (u32, u32);
2019-10-19T23:11:35.0713009Z    let mut _34: (u32, u32);
2019-10-19T23:11:35.0713138Z    let mut _35: (u32, u32);
2019-10-19T23:11:35.0713247Z    let mut _36: (u32, u32);
2019-10-19T23:11:35.0713366Z    let mut _37: (u32, u32);
2019-10-19T23:11:35.0713493Z    let mut _38: (u32, u32);
2019-10-19T23:11:35.0713602Z    let mut _39: (u32, u32);
2019-10-19T23:11:35.0713709Z    let mut _40: (u32, u32);
2019-10-19T23:11:35.0713836Z    let mut _41: (u32, u32);
2019-10-19T23:11:35.0713944Z    let mut _42: (u32, u32);
2019-10-19T23:11:35.0714073Z    let mut _43: (u32, u32);
2019-10-19T23:11:35.0714186Z    let mut _44: (u32, u32);
2019-10-19T23:11:35.0714293Z    let mut _45: (u32, u32);
2019-10-19T23:11:35.0714418Z    let mut _46: (u32, u32);
2019-10-19T23:11:35.0714529Z    let mut _47: (u32, u32);
2019-10-19T23:11:35.0714866Z    let mut _48: (u32, u32);
2019-10-19T23:11:35.0715011Z    bb0: {
2019-10-19T23:11:35.0715122Z        StorageLive(_1);
2019-10-19T23:11:35.0715235Z        StorageLive(_2);
2019-10-19T23:11:35.0715362Z        StorageLive(_3);
2019-10-19T23:11:35.0715472Z        StorageLive(_4);
2019-10-19T23:11:35.0715581Z        StorageLive(_5);
2019-10-19T23:11:35.0715706Z        StorageLive(_6);
2019-10-19T23:11:35.0715824Z        StorageLive(_7);
2019-10-19T23:11:35.0715935Z        _7 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0716066Z        StorageLive(_8);
2019-10-19T23:11:35.0716176Z        _8 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0716287Z        StorageLive(_9);
2019-10-19T23:11:35.0716418Z        _9 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0716528Z        StorageLive(_10);
2019-10-19T23:11:35.0716639Z        _10 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0716772Z        StorageLive(_11);
2019-10-19T23:11:35.0716883Z        _11 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0717015Z        StorageLive(_12);
2019-10-19T23:11:35.0717131Z        _12 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0717242Z        StorageLive(_13);
2019-10-19T23:11:35.0717370Z        _13 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0717482Z        StorageLive(_14);
2019-10-19T23:11:35.0717593Z        _14 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0717720Z        StorageLive(_15);
2019-10-19T23:11:35.0717958Z        _15 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0718071Z        StorageLive(_16);
2019-10-19T23:11:35.0718208Z        _16 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0718317Z        StorageLive(_17);
2019-10-19T23:11:35.0718676Z        _17 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0719098Z        StorageLive(_18);
2019-10-19T23:11:35.0719253Z        _18 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0719439Z        StorageLive(_19);
2019-10-19T23:11:35.0719609Z        _19 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0719778Z        StorageLive(_20);
2019-10-19T23:11:35.0720043Z        _20 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0720257Z        StorageLive(_21);
2019-10-19T23:11:35.0720408Z        _21 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0720575Z        StorageLive(_22);
2019-10-19T23:11:35.0720727Z        _22 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0720879Z        StorageLive(_23);
2019-10-19T23:11:35.0721056Z        _23 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0721210Z        StorageLive(_24);
2019-10-19T23:11:35.0721359Z        _24 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0721524Z        StorageLive(_25);
2019-10-19T23:11:35.0721676Z        _25 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0721928Z        StorageLive(_26);
2019-10-19T23:11:35.0722099Z        _26 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0722435Z        StorageLive(_27);
2019-10-19T23:11:35.0722718Z        _27 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0722827Z        StorageLive(_28);
2019-10-19T23:11:35.0722943Z        _28 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0723074Z        StorageLive(_29);
2019-10-19T23:11:35.0723188Z        _29 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0723317Z        StorageLive(_30);
2019-10-19T23:11:35.0723428Z        _30 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0723536Z        StorageLive(_31);
2019-10-19T23:11:35.0723648Z        _31 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0723782Z        StorageLive(_32);
2019-10-19T23:11:35.0723911Z        _32 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0724026Z        StorageLive(_33);
2019-10-19T23:11:35.0724135Z        _33 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0724243Z        StorageLive(_34);
2019-10-19T23:11:35.0724376Z        _34 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0724485Z        StorageLive(_35);
2019-10-19T23:11:35.0724614Z        _35 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0724729Z        StorageLive(_36);
2019-10-19T23:11:35.0724840Z        _36 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0724958Z        StorageLive(_37);
2019-10-19T23:11:35.0725096Z        _37 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0725207Z        StorageLive(_38);
2019-10-19T23:11:35.0725334Z        _38 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0725445Z        StorageLive(_39);
2019-10-19T23:11:35.0725556Z        _39 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0725749Z        StorageLive(_40);
2019-10-19T23:11:35.0726083Z        _40 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0726224Z        StorageLive(_41);
2019-10-19T23:11:35.0726341Z        _41 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0726476Z        StorageLive(_42);
2019-10-19T23:11:35.0726599Z        _42 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0726715Z        StorageLive(_43);
2019-10-19T23:11:35.0726831Z        _43 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0726968Z        StorageLive(_44);
2019-10-19T23:11:35.0727085Z        _44 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0727240Z        StorageLive(_45);
2019-10-19T23:11:35.0727365Z        _45 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0727486Z        StorageLive(_46);
2019-10-19T23:11:35.0727604Z        _46 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0727719Z        StorageLive(_47);
2019-10-19T23:11:35.0727854Z        _47 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0727992Z        StorageLive(_48);
2019-10-19T23:11:35.0728109Z        _48 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0728372Z        _6 = [move _7, move _8, move _9, move _10, move _11, move _12, move _13, move _14, move _15, move _16, move _17, move _18, move _19, move _20, move _21, move _22, move _23, move _24, move _25, move _26, move _27, move _28, move _29, move _30, move _31, move _32, move _33, move _34, move _35, move _36, move _37, move _38, move _39, move _40, move _41, move _42, move _43, move _44, move _45, move _46, move _47, move _48];
2019-10-19T23:11:35.0729088Z        _5 = &_6;
2019-10-19T23:11:35.0729269Z        _4 = &(*_5);
2019-10-19T23:11:35.0729906Z        _3 = move _4 as &'static [(u32, u32)] (Pointer(Unsize));
2019-10-19T23:11:35.0732957Z        _2 = Foo { tup: const "hi", data: move _3 };
2019-10-19T23:11:35.0733315Z        _1 = &_2;
2019-10-19T23:11:35.0733628Z        _0 = &(*_1);
2019-10-19T23:11:35.0733782Z        StorageDead(_5);
2019-10-19T23:11:35.0734110Z        StorageDead(_1);
2019-10-19T23:11:35.0734366Z    }
2019-10-19T23:11:35.0734502Z Actual:
2019-10-19T23:11:35.0734502Z Actual:
2019-10-19T23:11:35.0734904Z static  XXX: &'static Foo = {
2019-10-19T23:11:35.0735330Z     let mut _0: &'static Foo;
2019-10-19T23:11:35.0735666Z     let _1: &'static Foo;
2019-10-19T23:11:35.0735846Z     let _2: Foo;
2019-10-19T23:11:35.0736175Z     let mut _3: &'static [(u32, u32)];
2019-10-19T23:11:35.0736694Z     let mut _4: &'static [(u32, u32); 42];
2019-10-19T23:11:35.0737059Z     let _5: &'static [(u32, u32); 42];
2019-10-19T23:11:35.0737240Z     let _6: [(u32, u32); 42];
2019-10-19T23:11:35.0737370Z     let mut _7: (u32, u32);
2019-10-19T23:11:35.0737486Z     let mut _8: (u32, u32);
2019-10-19T23:11:35.0737611Z     let mut _9: (u32, u32);
2019-10-19T23:11:35.0737732Z     let mut _10: (u32, u32);
2019-10-19T23:11:35.0737868Z     let mut _11: (u32, u32);
2019-10-19T23:11:35.0738191Z     let mut _12: (u32, u32);
2019-10-19T23:11:35.0738308Z     let mut _13: (u32, u32);
2019-10-19T23:11:35.0738967Z     let mut _14: (u32, u32);
2019-10-19T23:11:35.0739348Z     let mut _15: (u32, u32);
2019-10-19T23:11:35.0739789Z     let mut _16: (u32, u32);
2019-10-19T23:11:35.0739956Z     let mut _17: (u32, u32);
2019-10-19T23:11:35.0740131Z     let mut _18: (u32, u32);
2019-10-19T23:11:35.0740279Z     let mut _19: (u32, u32);
2019-10-19T23:11:35.0740425Z     let mut _20: (u32, u32);
2019-10-19T23:11:35.0740601Z     let mut _21: (u32, u32);
2019-10-19T23:11:35.0740752Z     let mut _22: (u32, u32);
2019-10-19T23:11:35.0740920Z     let mut _23: (u32, u32);
2019-10-19T23:11:35.0741069Z     let mut _24: (u32, u32);
2019-10-19T23:11:35.0741236Z     let mut _25: (u32, u32);
2019-10-19T23:11:35.0741398Z     let mut _26: (u32, u32);
2019-10-19T23:11:35.0741573Z     let mut _27: (u32, u32);
2019-10-19T23:11:35.0741721Z     let mut _28: (u32, u32);
2019-10-19T23:11:35.0741867Z     let mut _29: (u32, u32);
2019-10-19T23:11:35.0742013Z     let mut _30: (u32, u32);
2019-10-19T23:11:35.0742346Z     let mut _31: (u32, u32);
2019-10-19T23:11:35.0742858Z     let mut _32: (u32, u32);
2019-10-19T23:11:35.0742981Z     let mut _33: (u32, u32);
2019-10-19T23:11:35.0743090Z     let mut _34: (u32, u32);
2019-10-19T23:11:35.0743199Z     let mut _35: (u32, u32);
2019-10-19T23:11:35.0743310Z     let mut _36: (u32, u32);
2019-10-19T23:11:35.0743419Z     let mut _37: (u32, u32);
2019-10-19T23:11:35.0743564Z     let mut _38: (u32, u32);
2019-10-19T23:11:35.0743678Z     let mut _39: (u32, u32);
2019-10-19T23:11:35.0743786Z     let mut _40: (u32, u32);
2019-10-19T23:11:35.0743895Z     let mut _41: (u32, u32);
2019-10-19T23:11:35.0744003Z     let mut _42: (u32, u32);
2019-10-19T23:11:35.0744114Z     let mut _43: (u32, u32);
2019-10-19T23:11:35.0744262Z     let mut _44: (u32, u32);
2019-10-19T23:11:35.0744377Z     let mut _45: (u32, u32);
2019-10-19T23:11:35.0744486Z     let mut _46: (u32, u32);
2019-10-19T23:11:35.0744595Z     let mut _47: (u32, u32);
2019-10-19T23:11:35.0744705Z     let mut _48: (u32, u32);
2019-10-19T23:11:35.0744834Z     bb0: {
2019-10-19T23:11:35.0744967Z         StorageLive(_1);
2019-10-19T23:11:35.0745248Z         StorageLive(_2);
2019-10-19T23:11:35.0745361Z         StorageLive(_3);
2019-10-19T23:11:35.0745469Z         StorageLive(_4);
2019-10-19T23:11:35.0745599Z         StorageLive(_5);
2019-10-19T23:11:35.0745713Z         StorageLive(_6);
2019-10-19T23:11:35.0745843Z         StorageLive(_7);
2019-10-19T23:11:35.0745956Z         _7 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0746064Z         StorageLive(_8);
2019-10-19T23:11:35.0746175Z         _8 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0746303Z         StorageLive(_9);
2019-10-19T23:11:35.0746417Z         _9 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0746622Z         StorageLive(_10);
2019-10-19T23:11:35.0746779Z         _10 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0746893Z         StorageLive(_11);
2019-10-19T23:11:35.0747004Z         _11 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0747133Z         StorageLive(_12);
2019-10-19T23:11:35.0747263Z         _12 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0747374Z         StorageLive(_13);
2019-10-19T23:11:35.0747497Z         _13 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0747606Z         StorageLive(_14);
2019-10-19T23:11:35.0747716Z         _14 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0747864Z         StorageLive(_15);
2019-10-19T23:11:35.0747977Z         _15 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0748108Z         StorageLive(_16);
2019-10-19T23:11:35.0748220Z         _16 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0748330Z         StorageLive(_17);
2019-10-19T23:11:35.0749074Z         _17 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0749321Z         StorageLive(_18);
2019-10-19T23:11:35.0767354Z         _18 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0767510Z         StorageLive(_19);
2019-10-19T23:11:35.0767632Z         _19 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0767762Z         StorageLive(_20);
2019-10-19T23:11:35.0767873Z         _20 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0767982Z         StorageLive(_21);
2019-10-19T23:11:35.0768118Z         _21 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0768230Z         StorageLive(_22);
2019-10-19T23:11:35.0768340Z         _22 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0768971Z         StorageLive(_23);
2019-10-19T23:11:35.0769152Z         _23 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0769325Z         StorageLive(_24);
2019-10-19T23:11:35.0769616Z         _24 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0769928Z         StorageLive(_25);
2019-10-19T23:11:35.0770097Z         _25 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0770250Z         StorageLive(_26);
2019-10-19T23:11:35.0770410Z         _26 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0770573Z         StorageLive(_27);
2019-10-19T23:11:35.0770720Z         _27 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0770866Z         StorageLive(_28);
2019-10-19T23:11:35.0771027Z         _28 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0771174Z         StorageLive(_29);
2019-10-19T23:11:35.0771321Z         _29 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0771503Z         StorageLive(_30);
2019-10-19T23:11:35.0771650Z         _30 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0771805Z         StorageLive(_31);
2019-10-19T23:11:35.0771961Z         _31 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0772110Z         StorageLive(_32);
2019-10-19T23:11:35.0772272Z         _32 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0772619Z         StorageLive(_33);
2019-10-19T23:11:35.0772917Z         _33 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0773045Z         StorageLive(_34);
2019-10-19T23:11:35.0773168Z         _34 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0773293Z         StorageLive(_35);
2019-10-19T23:11:35.0773422Z         _35 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0773541Z         StorageLive(_36);
2019-10-19T23:11:35.0773658Z         _36 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0773784Z         StorageLive(_37);
2019-10-19T23:11:35.0773905Z         _37 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0774196Z         StorageLive(_38);
2019-10-19T23:11:35.0774332Z         _38 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0774453Z         StorageLive(_39);
2019-10-19T23:11:35.0774633Z         _39 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0775001Z         StorageLive(_40);
2019-10-19T23:11:35.0775220Z         _40 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0775599Z         StorageLive(_41);
2019-10-19T23:11:35.0775821Z         _41 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0776153Z         StorageLive(_42);
2019-10-19T23:11:35.0776372Z         _42 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0777517Z         StorageLive(_43);
2019-10-19T23:11:35.0777573Z         _43 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0777628Z         StorageLive(_44);
2019-10-19T23:11:35.0777666Z         _44 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0777702Z         StorageLive(_45);
2019-10-19T23:11:35.0777749Z         _45 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0777786Z         StorageLive(_46);
2019-10-19T23:11:35.0777832Z         _46 = (const 0u32, const 1u32);
2019-10-19T23:11:35.0777875Z         StorageLive(_47);
2019-10-19T23:11:35.0777912Z         _47 = (const 0u32, const 2u32);
2019-10-19T23:11:35.0777950Z         StorageLive(_48);
2019-10-19T23:11:35.0777987Z         _48 = (const 0u32, const 3u32);
2019-10-19T23:11:35.0778076Z         _6 = [move _7, move _8, move _9, move _10, move _11, move _12, move _13, move _14, move _15, move _16, move _17, move _18, move _19, move _20, move _21, move _22, move _23, move _24, move _25, move _26, move _27, move _28, move _29, move _30, move _31, move _32, move _33, move _34, move _35, move _36, move _37, move _38, move _39, move _40, move _41, move _42, move _43, move _44, move _45, move _46, move _47, move _48];
2019-10-19T23:11:35.0778143Z         _5 = &_6;
2019-10-19T23:11:35.0778187Z         _4 = &(*_5);
2019-10-19T23:11:35.0779275Z         _3 = move _4 as &'static [(u32, u32)] (Pointer(Unsize));
2019-10-19T23:11:35.0779347Z         _2 = Foo { tup: const "hi", data: move _3 };
2019-10-19T23:11:35.0779420Z         _1 = &_2;
2019-10-19T23:11:35.0779465Z         _0 = &(*_1);
2019-10-19T23:11:35.0779508Z         StorageDead(_5);
2019-10-19T23:11:35.0779569Z         StorageDead(_1);
2019-10-19T23:11:35.0779657Z     }
2019-10-19T23:11:35.0779657Z     }
2019-10-19T23:11:35.0779715Z     bb1 (cleanup): {
2019-10-19T23:11:35.0779759Z         resume;
2019-10-19T23:11:35.0780068Z }', src/tools/compiletest/src/runtest.rs:3296:13
2019-10-19T23:11:35.0780140Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-10-19T23:11:35.0780185Z 
2019-10-19T23:11:35.0780212Z 
---
2019-10-19T23:11:35.0780853Z 
2019-10-19T23:11:35.0781156Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-10-19T23:11:35.0781193Z 
2019-10-19T23:11:35.0781219Z 
2019-10-19T23:11:35.0782747Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/mir-opt" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/mir-opt" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "mir-opt" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2019-10-19T23:11:35.0783038Z 
2019-10-19T23:11:35.0783059Z 
2019-10-19T23:11:35.0783156Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-10-19T23:11:35.0783200Z Build completed unsuccessfully in 1:03:40
2019-10-19T23:11:35.0783200Z Build completed unsuccessfully in 1:03:40
2019-10-19T23:11:35.0805768Z == clock drift check ==
2019-10-19T23:11:35.0818308Z   local time: Sat Oct 19 23:11:35 UTC 2019
2019-10-19T23:11:35.2325860Z   network time: Sat, 19 Oct 2019 23:11:35 GMT
2019-10-19T23:11:35.2328160Z == end clock drift check ==
2019-10-19T23:11:39.4259726Z 
2019-10-19T23:11:39.4352533Z ##[error]Bash exited with code '1'.
2019-10-19T23:11:39.4388041Z ##[section]Starting: Checkout
2019-10-19T23:11:39.4390320Z ==============================================================================
2019-10-19T23:11:39.4390379Z Task         : Get sources
2019-10-19T23:11:39.4390427Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@matthewjasper matthewjasper force-pushed the matthewjasper:mir-eval-order branch from 0d3a777 to 94b1389 Oct 20, 2019
src/librustc/mir/mod.rs Outdated Show resolved Hide resolved
src/librustc_mir/build/expr/as_place.rs Outdated Show resolved Hide resolved
src/librustc_mir/build/expr/as_place.rs Outdated Show resolved Hide resolved
src/librustc_mir/build/expr/as_place.rs Outdated Show resolved Hide resolved
src/librustc_mir/build/expr/as_place.rs Outdated Show resolved Hide resolved
src/librustc_mir/build/expr/into.rs Outdated Show resolved Hide resolved
src/librustc_mir/build/expr/into.rs Outdated Show resolved Hide resolved
@matthewjasper matthewjasper force-pushed the matthewjasper:mir-eval-order branch from 94b1389 to 683d113 Oct 20, 2019
len: Operand::Move(len),
index: Operand::Copy(Place::from(index)),
};
// assert!(lt, "...")

This comment has been minimized.

Copy link
@Centril

Centril Oct 20, 2019

Member
Suggested change
// assert!(lt, "...")
// assert!(lt, "...") -> bb_success
@matthewjasper

This comment has been minimized.

Copy link
Contributor Author

matthewjasper commented Oct 20, 2019

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

Copy link

rust-timer commented Oct 20, 2019

Awaiting bors try build completion

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Oct 20, 2019

⌛️ Trying commit 683d113 with merge 5c1eaf2...

bors added a commit that referenced this pull request Oct 20, 2019
Fix MIR lowering evaluation order and soundness bug

* Fixes a soundness issue with built-in index operations
* Ensures correct evaluation order of assignment expressions where the RHS is a FRU or is a use of a local of reference type.
* Removes an unnecessary symbol to string conversion
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Oct 21, 2019

☀️ Try build successful - checks-azure
Build commit: 5c1eaf2 (5c1eaf255c65c812d8b1a117a7ace2e0af367218)

@rust-timer

This comment has been minimized.

Copy link

rust-timer commented Oct 21, 2019

Queued 5c1eaf2 with parent 89e645a, future comparison URL.

@rust-timer

This comment has been minimized.

Copy link

rust-timer commented Oct 21, 2019

Finished benchmarking try commit 5c1eaf2, comparison URL.

@matthewjasper

This comment has been minimized.

Copy link
Contributor Author

matthewjasper commented Oct 21, 2019

Perf looks fine (almost no change). Does someone else want to review? cc @oli-obk @eddyb

@eddyb

This comment has been minimized.

Copy link
Member

eddyb commented Oct 21, 2019

r? @pnkfelix cc @nikomatsakis (MIR building / soundness changes seem pretty important)

@rust-highfive rust-highfive assigned pnkfelix and unassigned estebank Oct 21, 2019
@estebank

This comment has been minimized.

Copy link
Contributor

estebank commented Oct 21, 2019

cc @rust-lang/compiler just to make sure everyone sees it.

@pnkfelix

This comment has been minimized.

Copy link
Member

pnkfelix commented Oct 25, 2019

I've skimmed over the changes. I want another chance to go over them more carefully (hopefully Monday), especially 683d113 where it uses into() instead of as_rvalue for borrows and ... well, you say FRU, but its really for all struct-literal expressions, no? FRU. (I was wrong, FRU is indeed special cased in the code.)

@pnkfelix

This comment has been minimized.

Copy link
Member

pnkfelix commented Oct 25, 2019

(also, are there separate issues filed for the bugs being fixed here? It might be useful to have a separate place to track that...)

@matthewjasper matthewjasper force-pushed the matthewjasper:mir-eval-order branch from 683d113 to 4c0cd34 Oct 28, 2019
@JohnCSimon

This comment has been minimized.

Copy link
Member

JohnCSimon commented Nov 2, 2019

Ping from triage.
@pnkfelix Can you please review this PR?
cc: @matthewjasper @Centril

Thank you!

// the index changing later: Nothing will ever change this temporary.
// The "retagging" transformation (for Stacked Borrows) relies on this.
let idx = unpack!(block = this.as_temp(
this.lower_index_expression(

This comment has been minimized.

Copy link
@pnkfelix

pnkfelix Nov 4, 2019

Member

This commit contains a number of refactorings (such as the rewrite of the match expression above, and the out-of-lining of the expression into its own method here).

I like refactorings, and think these ones make sense, given the state of the code.

But I also think my review would have been much easier (and perhaps would have had a quicker turn around time) if the refactorings were isolated into their own commit that was tagged as a refactoring with no expected semantic effect).

It’s not something that I’m going to demand of this Pull Request. It’s more of a note for the future: I think that isolating refactorings into their own commit(s) is a good habit for PR authors in general.

@Centril

This comment has been minimized.

Copy link
Member

Centril commented Nov 8, 2019

@bors p=4

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Nov 9, 2019

⌛️ Testing commit 4fc8287 with merge 43bc89a...

bors added a commit that referenced this pull request Nov 9, 2019
Fix MIR lowering evaluation order and soundness bug

* Fixes a soundness issue with built-in index operations
* Ensures correct evaluation order of assignment expressions where the RHS is a FRU or is a use of a local of reference type.
* Removes an unnecessary symbol to string conversion

closes #65909
closes #65910
@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Nov 9, 2019

The job i686-mingw-2 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-11-09T04:44:23.0141699Z environment variables:
2019-11-09T04:44:23.1105441Z 
2019-11-09T04:44:23.1106152Z 
2019-11-09T04:44:23.1106333Z 
2019-11-09T04:44:23.1106630Z * Ensures correct evaluation order of assignment expressions where the RHS is a FRU or is a use of a local of reference type.
2019-11-09T04:44:23.1106859Z * Fixes a soundness issue with built-in index operations
2019-11-09T04:44:23.1107116Z * Removes an unnecessary symbol to string conversion
2019-11-09T04:44:23.1107810Z AGENT_DISABLELOGPLUGIN_TESTFILEPUBLISHERPLUGIN=true
2019-11-09T04:44:23.1108781Z AGENT_DISABLELOGPLUGIN_TESTRESULTLOGPLUGIN=true
2019-11-09T04:44:23.1111217Z AGENT_HOMEDIRECTORY=C:\agents\2.160.0
2019-11-09T04:44:23.1111426Z AGENT_ID=512
---
2019-11-09T05:53:36.3184078Z [RUSTC-TIMING] memoffset test:false 0.173
2019-11-09T05:53:39.0131461Z [RUSTC-TIMING] parking_lot_core test:false 2.659
2019-11-09T05:53:39.0316738Z    Compiling synstructure v0.12.1
2019-11-09T05:54:30.8192134Z 
2019-11-09T05:54:30.8192700Z This application has requested the Runtime to terminate it in an unusual way.
2019-11-09T05:54:30.8193298Z Please contact the application's support team for more information.
2019-11-09T05:54:32.5147218Z Assertion failed!
2019-11-09T05:54:32.5147489Z Program: D:\a\1\s\build\i686-pc-windows-gnu\stage1\bin\rustc.exe
2019-11-09T05:54:32.5147489Z Program: D:\a\1\s\build\i686-pc-windows-gnu\stage1\bin\rustc.exe
2019-11-09T05:54:32.5147634Z File: D:/a/1/s/src/llvm-project/llvm/include/llvm/CodeGen/MachineOperand.h, Line 527
2019-11-09T05:54:32.5147703Z 
2019-11-09T05:54:32.5148010Z Expression: isImm() && "Wrong MachineOperand accessor"
2019-11-09T05:54:32.5148240Z error: could not compile `syn`.
2019-11-09T05:54:32.5148344Z warning: build failed, waiting for other jobs to finish...
2019-11-09T05:54:35.6572595Z [RUSTC-TIMING] synstructure test:false 56.599
2019-11-09T05:54:35.6681995Z error: build failed
2019-11-09T05:54:35.6681995Z error: build failed
2019-11-09T05:54:35.6738092Z command did not execute successfully: "D:\\a\\1\\s\\build\\i686-pc-windows-gnu\\stage0\\bin\\cargo.exe" "build" "-Zconfig-profile" "--target" "i686-pc-windows-gnu" "-Zbinary-dep-depinfo" "-j" "2" "--release" "--locked" "--color" "always" "--features" "" "--manifest-path" "D:\\a\\1\\s\\src/rustc/Cargo.toml" "--message-format" "json-render-diagnostics"
2019-11-09T05:54:35.6738651Z expected success, got: exit code: 101
2019-11-09T05:54:35.7687414Z failed to run: D:\a\1\s\build\bootstrap\debug\bootstrap test src/test/ui src/test/compile-fail
2019-11-09T05:54:35.7687742Z Build completed unsuccessfully in 0:59:56
2019-11-09T05:54:35.8262584Z make: *** [Makefile:91: ci-mingw-subset-2] Error 1
2019-11-09T05:54:35.8855194Z   local time: Sat Nov  9 05:54:35 CUT 2019
2019-11-09T05:54:36.4998331Z   network time: Sat, 09 Nov 2019 05:54:36 GMT
2019-11-09T05:54:36.5014168Z == end clock drift check ==
2019-11-09T05:54:36.5876936Z 
2019-11-09T05:54:36.5876936Z 
2019-11-09T05:54:36.9151238Z ##[error]Bash exited with code '2'.
2019-11-09T05:54:36.9588668Z ##[section]Starting: Checkout
2019-11-09T05:54:37.0440331Z ==============================================================================
2019-11-09T05:54:37.0440466Z Task         : Get sources
2019-11-09T05:54:37.0440552Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Nov 9, 2019

💔 Test failed - checks-azure

@matthewjasper

This comment has been minimized.

Copy link
Contributor Author

matthewjasper commented Nov 10, 2019

This appears to be a pre-existing bug. I've minimized the issue to the following this requires a rustc with llvm assertions enabled and I suspect all i686 toolchains are affected:

// Only breaks at opt-level=2 or higher.
#![crate_type="lib"]

pub fn check_overlap(ext: &i32) -> usize {
    let src_usize = &1 as *const _ as usize;
    let dst_usize = ext as *const _ as usize;
    let mut diff = src_usize.wrapping_sub(dst_usize);
    if src_usize > dst_usize {
        diff = diff.wrapping_neg();
    };

    diff
}
@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Nov 11, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-11-11T19:28:16.7278994Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-11-11T19:28:16.7478924Z ##[command]git config gc.auto 0
2019-11-11T19:28:16.7565079Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-11-11T19:28:16.7617235Z ##[command]git config --get-all http.proxy
2019-11-11T19:28:16.7763297Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/65608/merge:refs/remotes/pull/65608/merge
---
2019-11-11T20:27:35.3327537Z .................................................................................................... 1500/9230
2019-11-11T20:27:41.3233280Z .................................................................................................... 1600/9230
2019-11-11T20:27:50.4772031Z .................................................................................................... 1700/9230
2019-11-11T20:27:58.9874485Z ...i................................................................................................ 1800/9230
2019-11-11T20:28:05.6798551Z .......................................................................................iiiii........ 1900/9230
2019-11-11T20:28:27.1641439Z .................................................................................................... 2100/9230
2019-11-11T20:28:29.5745523Z .................................................................................................... 2200/9230
2019-11-11T20:28:32.1209753Z .................................................................................................... 2300/9230
2019-11-11T20:28:41.6818421Z .................................................................................................... 2400/9230
---
2019-11-11T20:31:34.6782583Z ...................................................................................i...............i 4700/9230
2019-11-11T20:31:41.6212449Z .................................................................................................... 4800/9230
2019-11-11T20:31:50.7479986Z .................................................................................................... 4900/9230
2019-11-11T20:31:55.9249683Z .................................................................................................... 5000/9230
2019-11-11T20:32:07.2919609Z ......................................................................................ii.ii......... 5100/9230
2019-11-11T20:32:11.0633985Z ..i................................................................................................. 5200/9230
2019-11-11T20:32:24.2576754Z .................................................................................................... 5400/9230
2019-11-11T20:32:32.3841362Z ....................................................................i............................... 5500/9230
2019-11-11T20:32:39.8308604Z .................................................................................................... 5600/9230
2019-11-11T20:32:47.4322762Z .................................................................................................... 5700/9230
2019-11-11T20:32:47.4322762Z .................................................................................................... 5700/9230
2019-11-11T20:32:56.6046123Z ......................................................ii...i..ii...........i........................ 5800/9230
2019-11-11T20:33:18.9464697Z .................................................................................................... 6000/9230
2019-11-11T20:33:27.2547798Z .................................................................................................... 6100/9230
2019-11-11T20:33:27.2547798Z .................................................................................................... 6100/9230
2019-11-11T20:33:33.1294485Z .........................................................................i..ii...................... 6200/9230
2019-11-11T20:34:02.0110572Z .................................................................................................... 6400/9230
2019-11-11T20:34:04.2458752Z .........................................i.......................................................... 6500/9230
2019-11-11T20:34:06.4725750Z .................................................................................................... 6600/9230
2019-11-11T20:34:08.8542280Z .........................i.......................................................................... 6700/9230
---
2019-11-11T20:39:13.6543862Z running 64 tests
2019-11-11T20:39:19.6567684Z .............................................................F..
2019-11-11T20:39:19.6571428Z failures:
2019-11-11T20:39:19.6571492Z 
2019-11-11T20:39:19.6571979Z ---- [mir-opt] mir-opt/uninhabited_enum_branching.rs stdout ----
2019-11-11T20:39:19.6573292Z [ERROR compiletest::runtest] None
2019-11-11T20:39:19.6574944Z thread '[mir-opt] mir-opt/uninhabited_enum_branching.rs' panicked at 'Did not find expected line, error: Mismatch in lines
2019-11-11T20:39:19.6622356Z Current block: None
2019-11-11T20:39:19.6622456Z Actual Line: "    let _4: &str;"
2019-11-11T20:39:19.6622692Z Expected Line: "let mut _4: &str;"
2019-11-11T20:39:19.6622758Z Test Name: rustc.main.UninhabitedEnumBranching.before.mir
2019-11-11T20:39:19.6622861Z ... (elided)
2019-11-11T20:39:19.6622902Z let mut _0: ();
2019-11-11T20:39:19.6622959Z let _1: &str;
2019-11-11T20:39:19.6623000Z let mut _2: Test1;
2019-11-11T20:39:19.6623000Z let mut _2: Test1;
2019-11-11T20:39:19.6623041Z let mut _3: isize;
2019-11-11T20:39:19.6623082Z let mut _4: &str;
2019-11-11T20:39:19.6623139Z let mut _5: &str;
2019-11-11T20:39:19.6623179Z let _6: &str;
2019-11-11T20:39:19.6623220Z let mut _7: Test2;
2019-11-11T20:39:19.6623274Z let mut _8: isize;
2019-11-11T20:39:19.6624178Z let mut _9: &str;
2019-11-11T20:39:19.6624228Z bb0: {
2019-11-11T20:39:19.6624269Z   StorageLive(_1);
2019-11-11T20:39:19.6624501Z   StorageLive(_2);
2019-11-11T20:39:19.6624541Z   _2 = Test1::C;
2019-11-11T20:39:19.6624584Z   _3 = discriminant(_2);
2019-11-11T20:39:19.6625059Z   switchInt(move _3) -> [0isize: bb3, 1isize: bb4, 2isize: bb1, otherwise: bb2];
2019-11-11T20:39:19.6625171Z bb1: {
2019-11-11T20:39:19.6625227Z   StorageLive(_5);
2019-11-11T20:39:19.6625268Z   _5 = const "C";
2019-11-11T20:39:19.6625308Z   _1 = &(*_5);
2019-11-11T20:39:19.6625308Z   _1 = &(*_5);
2019-11-11T20:39:19.6625348Z   StorageDead(_5);
2019-11-11T20:39:19.6625580Z   goto -> bb5;
2019-11-11T20:39:19.6625659Z bb2: {
2019-11-11T20:39:19.6625713Z   unreachable;
2019-11-11T20:39:19.6625751Z }
2019-11-11T20:39:19.6625789Z bb3: {
2019-11-11T20:39:19.6625789Z bb3: {
2019-11-11T20:39:19.6625830Z   _1 = const "A(Empty)";
2019-11-11T20:39:19.6626035Z   goto -> bb5;
2019-11-11T20:39:19.6626112Z bb4: {
2019-11-11T20:39:19.6626166Z   StorageLive(_4);
2019-11-11T20:39:19.6626166Z   StorageLive(_4);
2019-11-11T20:39:19.6626208Z   _4 = const "B(Empty)";
2019-11-11T20:39:19.6626248Z   _1 = &(*_4);
2019-11-11T20:39:19.6626298Z   StorageDead(_4);
2019-11-11T20:39:19.6626505Z   goto -> bb5;
2019-11-11T20:39:19.6626582Z bb5: {
2019-11-11T20:39:19.6626637Z   StorageDead(_2);
2019-11-11T20:39:19.6626686Z   StorageDead(_1);
2019-11-11T20:39:19.6626726Z   StorageLive(_6);
2019-11-11T20:39:19.6626726Z   StorageLive(_6);
2019-11-11T20:39:19.6626765Z   StorageLive(_7);
2019-11-11T20:39:19.6626822Z   _7 = Test2::D;
2019-11-11T20:39:19.6626863Z   _8 = discriminant(_7);
2019-11-11T20:39:19.6627113Z   switchInt(move _8) -> [4isize: bb8, 5isize: bb6, otherwise: bb7];
2019-11-11T20:39:19.6627212Z bb6: {
2019-11-11T20:39:19.6627252Z   StorageLive(_9);
2019-11-11T20:39:19.6627308Z   _9 = const "E";
2019-11-11T20:39:19.6627348Z   _6 = &(*_9);
2019-11-11T20:39:19.6627348Z   _6 = &(*_9);
2019-11-11T20:39:19.6627388Z   StorageDead(_9);
2019-11-11T20:39:19.6627573Z   goto -> bb9;
2019-11-11T20:39:19.6627664Z bb7: {
2019-11-11T20:39:19.6627704Z   unreachable;
2019-11-11T20:39:19.6627757Z }
2019-11-11T20:39:19.6627803Z bb8: {
2019-11-11T20:39:19.6627803Z bb8: {
2019-11-11T20:39:19.6627842Z   _6 = const "D";
2019-11-11T20:39:19.6628027Z   goto -> bb9;
2019-11-11T20:39:19.6628119Z bb9: {
2019-11-11T20:39:19.6628158Z   StorageDead(_7);
2019-11-11T20:39:19.6628223Z   StorageDead(_6);
2019-11-11T20:39:19.6628264Z   _0 = ();
2019-11-11T20:39:19.6628264Z   _0 = ();
2019-11-11T20:39:19.6628303Z   return;
2019-11-11T20:39:19.6628340Z }
2019-11-11T20:39:19.6628394Z Actual:
2019-11-11T20:39:19.6628581Z fn  main() -> () {
2019-11-11T20:39:19.6628624Z     let mut _0: ();
2019-11-11T20:39:19.6628680Z     let _1: &str;
2019-11-11T20:39:19.6628722Z     let mut _2: Test1;
2019-11-11T20:39:19.6628763Z     let mut _3: isize;
2019-11-11T20:39:19.6628804Z     let _4: &str;
2019-11-11T20:39:19.6628860Z     let _5: &str;
2019-11-11T20:39:19.6628900Z     let _6: &str;
2019-11-11T20:39:19.6628940Z     let mut _7: Test2;
2019-11-11T20:39:19.6628998Z     let mut _8: isize;
2019-11-11T20:39:19.6629038Z     let _9: &str;
2019-11-11T20:39:19.6629078Z     bb0: {
2019-11-11T20:39:19.6629134Z         StorageLive(_1);
2019-11-11T20:39:19.6629184Z         StorageLive(_2);
2019-11-11T20:39:19.6629224Z         _2 = Test1::C;
2019-11-11T20:39:19.6629266Z         _3 = discriminant(_2);
2019-11-11T20:39:19.6629645Z         switchInt(move _3) -> [0isize: bb3, 1isize: bb4, 2isize: bb1, otherwise: bb2];
2019-11-11T20:39:19.6629744Z     bb1: {
2019-11-11T20:39:19.6629801Z         StorageLive(_5);
2019-11-11T20:39:19.6629842Z         _5 = const "C";
2019-11-11T20:39:19.6629883Z         _1 = &(*_5);
2019-11-11T20:39:19.6629883Z         _1 = &(*_5);
2019-11-11T20:39:19.6629941Z         StorageDead(_5);
2019-11-11T20:39:19.6630173Z         goto -> bb5;
2019-11-11T20:39:19.6630253Z     bb2: {
2019-11-11T20:39:19.6630308Z         unreachable;
2019-11-11T20:39:19.6630347Z     }
2019-11-11T20:39:19.6630385Z     bb3: {
2019-11-11T20:39:19.6630385Z     bb3: {
2019-11-11T20:39:19.6630443Z         _1 = const "A(Empty)";
2019-11-11T20:39:19.6630636Z         goto -> bb5;
2019-11-11T20:39:19.6630717Z     bb4: {
2019-11-11T20:39:19.6630855Z         StorageLive(_4);
2019-11-11T20:39:19.6630855Z         StorageLive(_4);
2019-11-11T20:39:19.6630896Z         _4 = const "B(Empty)";
2019-11-11T20:39:19.6630938Z         _1 = &(*_4);
2019-11-11T20:39:19.6630996Z         StorageDead(_4);
2019-11-11T20:39:19.6631225Z         goto -> bb5;
2019-11-11T20:39:19.6631306Z     bb5: {
2019-11-11T20:39:19.6631361Z         StorageDead(_2);
2019-11-11T20:39:19.6631401Z         StorageDead(_1);
2019-11-11T20:39:19.6631442Z         StorageLive(_6);
2019-11-11T20:39:19.6631442Z         StorageLive(_6);
2019-11-11T20:39:19.6631498Z         StorageLive(_7);
2019-11-11T20:39:19.6631538Z         _7 = Test2::D;
2019-11-11T20:39:19.6631579Z         _8 = discriminant(_7);
2019-11-11T20:39:19.6631850Z         switchInt(move _8) -> [4isize: bb8, 5isize: bb6, otherwise: bb7];
2019-11-11T20:39:19.6631935Z     bb6: {
2019-11-11T20:39:19.6631975Z         StorageLive(_9);
2019-11-11T20:39:19.6632032Z         _9 = const "E";
2019-11-11T20:39:19.6632073Z         _6 = &(*_9);
2019-11-11T20:39:19.6632073Z         _6 = &(*_9);
2019-11-11T20:39:19.6632121Z         StorageDead(_9);
2019-11-11T20:39:19.6632329Z         goto -> bb9;
2019-11-11T20:39:19.6632408Z     bb7: {
2019-11-11T20:39:19.6632448Z         unreachable;
2019-11-11T20:39:19.6632501Z     }
2019-11-11T20:39:19.6632547Z     bb8: {
2019-11-11T20:39:19.6632547Z     bb8: {
2019-11-11T20:39:19.6632588Z         _6 = const "D";
2019-11-11T20:39:19.6632800Z         goto -> bb9;
2019-11-11T20:39:19.6632880Z     bb9: {
2019-11-11T20:39:19.6632935Z         StorageDead(_7);
2019-11-11T20:39:19.6632976Z         StorageDead(_6);
2019-11-11T20:39:19.6633015Z         _0 = ();
---
2019-11-11T20:39:19.6634367Z 
2019-11-11T20:39:19.6634640Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-11-11T20:39:19.6634693Z 
2019-11-11T20:39:19.6634719Z 
2019-11-11T20:39:19.6637182Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/mir-opt" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/mir-opt" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "mir-opt" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2019-11-11T20:39:19.6637470Z 
2019-11-11T20:39:19.6637500Z 
2019-11-11T20:39:19.6637545Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-11-11T20:39:19.6637612Z Build completed unsuccessfully in 1:04:22
2019-11-11T20:39:19.6637612Z Build completed unsuccessfully in 1:04:22
2019-11-11T20:39:19.6647133Z == clock drift check ==
2019-11-11T20:39:19.6658394Z   local time: Mon Nov 11 20:39:19 UTC 2019
2019-11-11T20:39:19.8149457Z   network time: Mon, 11 Nov 2019 20:39:19 GMT
2019-11-11T20:39:19.8155170Z == end clock drift check ==
2019-11-11T20:39:23.5443438Z 
2019-11-11T20:39:23.5561885Z ##[error]Bash exited with code '1'.
2019-11-11T20:39:23.5600358Z ##[section]Starting: Checkout
2019-11-11T20:39:23.5602005Z ==============================================================================
2019-11-11T20:39:23.5602059Z Task         : Get sources
2019-11-11T20:39:23.5602106Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

An expression like `x[1][{ x = y; 2}]` would perform the bounds check
for the inner index operation before evaluating the outer index. This
would allow out of bounds memory accesses.
This fixes some ordering problems around assignment expressions.
@matthewjasper matthewjasper force-pushed the matthewjasper:mir-eval-order branch from 3d3b0f9 to 698b347 Nov 11, 2019
@matthewjasper

This comment has been minimized.

Copy link
Contributor Author

matthewjasper commented Nov 11, 2019

I've pushed a work around and have opened #66315 for the CI failure.

@mati865 mati865 mentioned this pull request Nov 11, 2019
bors added a commit that referenced this pull request Nov 12, 2019
[WIP] Llvm update

Asking for a `@bors try`, includes #65608 to verify if it fixes the issue.
@matthewjasper matthewjasper force-pushed the matthewjasper:mir-eval-order branch from 698b347 to 4bf0685 Nov 12, 2019
@matthewjasper

This comment has been minimized.

Copy link
Contributor Author

matthewjasper commented Nov 12, 2019

@bors r=pnkfelix p=0 rollup=never

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Nov 12, 2019

📌 Commit 4bf0685 has been approved by pnkfelix

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Nov 12, 2019

⌛️ Testing commit 4bf0685 with merge 4f03f4a...

bors added a commit that referenced this pull request Nov 12, 2019
Fix MIR lowering evaluation order and soundness bug

* Fixes a soundness issue with built-in index operations
* Ensures correct evaluation order of assignment expressions where the RHS is a FRU or is a use of a local of reference type.
* Removes an unnecessary symbol to string conversion

closes #65909
closes #65910
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Nov 12, 2019

☀️ Test successful - checks-azure
Approved by: pnkfelix
Pushing 4f03f4a to master...

@bors bors added the merged-by-bors label Nov 12, 2019
@bors bors merged commit 4bf0685 into rust-lang:master Nov 12, 2019
5 checks passed
5 checks passed
homu Test successful
Details
pr Build #20191112.35 succeeded
Details
pr (Linux mingw-check) Linux mingw-check succeeded
Details
pr (Linux x86_64-gnu-llvm-6.0) Linux x86_64-gnu-llvm-6.0 succeeded
Details
pr (Linux x86_64-gnu-tools) Linux x86_64-gnu-tools succeeded
Details
@matthewjasper matthewjasper deleted the matthewjasper:mir-eval-order branch Nov 12, 2019
@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Nov 12, 2019

📣 Toolstate changed by #65608!

Tested on commit 4f03f4a.
Direct link to PR: #65608

🎉 rls on linux: test-fail → test-pass (cc @Xanewok, @rust-lang/infra).

rust-highfive added a commit to rust-lang-nursery/rust-toolstate that referenced this pull request Nov 12, 2019
Tested on commit rust-lang/rust@4f03f4a.
Direct link to PR: <rust-lang/rust#65608>

🎉 rls on linux: test-fail → test-pass (cc @Xanewok, @rust-lang/infra).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
9 participants
You can’t perform that action at this time.