1. 15 11月, 2018 6 次提交
    • R
    • R
      ffb6ba08
    • B
      Auto merge of #55716 - RalfJung:escape-to-raw, r=oli-obk · 4ec0ba95
      bors 提交于
      Add escape-to-raw MIR statement
      
      Add a new MIR "ghost state statement": Escaping a ptr to permit raw accesses.
      
      ~~This includes #55549, [click here](https://github.com/RalfJung/rust/compare/miri-visitor...RalfJung:escape-to-raw) for just the new commits.~~
      4ec0ba95
    • B
      Auto merge of #55939 - alexcrichton:path-regression-again, r=sfackler · 7d3b9b16
      bors 提交于
      std: Synchronize access to global env during `exec`
      
      This commit, after reverting #55359, applies a different fix for #46775
      while also fixing #55775. The basic idea was to go back to pre-#55359
      libstd, and then fix #46775 in a way that doesn't expose #55775.
      
      The issue described in #46775 boils down to two problems:
      
      * First, the global environment is reset during `exec` but, but if the
        `exec` call fails then the global environment was a dangling pointer
        into free'd memory as the block of memory was deallocated when
        `Command` is dropped. This is fixed in this commit by installing a
        `Drop` stack object which ensures that the `environ` pointer is
        preserved on a failing `exec`.
      
      * Second, the global environment was accessed in an unsynchronized
        fashion during `exec`. This was fixed by ensuring that the
        Rust-specific environment lock is acquired for these system-level
        operations.
      
      Thanks to Alex Gaynor for pioneering the solution here!
      
      Closes #55775
      7d3b9b16
    • A
      std: Synchronize access to global env during `exec` · 4032b7a4
      Alex Crichton 提交于
      This commit, after reverting #55359, applies a different fix for #46775
      while also fixing #55775. The basic idea was to go back to pre-#55359
      libstd, and then fix #46775 in a way that doesn't expose #55775.
      
      The issue described in #46775 boils down to two problems:
      
      * First, the global environment is reset during `exec` but, but if the
        `exec` call fails then the global environment was a dangling pointer
        into free'd memory as the block of memory was deallocated when
        `Command` is dropped. This is fixed in this commit by installing a
        `Drop` stack object which ensures that the `environ` pointer is
        preserved on a failing `exec`.
      
      * Second, the global environment was accessed in an unsynchronized
        fashion during `exec`. This was fixed by ensuring that the
        Rust-specific environment lock is acquired for these system-level
        operations.
      
      Thanks to Alex Gaynor for pioneering the solution here!
      
      Closes #55775
      Co-authored-by: NAlex Gaynor <alex.gaynor@gmail.com>
      4032b7a4
    • B
      Auto merge of #55947 - michaelwoerister:xlto-fix-lld-opt, r=Mark-Simulacrum · 6f93e93a
      bors 提交于
      xLTO: Don't pass --plugin-opt=thin to LLD. That's not supported anymore.
      
      It seems that `-plugin-opt=thin` is not needed anymore when invoking LLD for ThinLTO. Unfortunately, still passing the option makes LLD crash instead of giving a deprecation warning or something.
      6f93e93a
  2. 14 11月, 2018 8 次提交
  3. 13 11月, 2018 26 次提交