about summary refs log tree commit diff
path: root/src/libstd/sys/unix/stack_overflow.rs
diff options
context:
space:
mode:
authorCorey Farwell <coreyf@rwell.org>2016-01-24 20:22:24 -0500
committerCorey Farwell <coreyf@rwell.org>2016-01-25 00:15:39 -0500
commitd9426210b197cb0be1db9838342349f38db135e3 (patch)
tree7efee96cdd36487adb3a231d05d50c2300127de3 /src/libstd/sys/unix/stack_overflow.rs
parent289020b21c95a4c8f8578e51cdea79a2182515e6 (diff)
downloadrust-d9426210b197cb0be1db9838342349f38db135e3.tar.gz
rust-d9426210b197cb0be1db9838342349f38db135e3.zip
Register LLVM passes with the correct LLVM pass manager.
LLVM was upgraded to a new version in this commit:

https://github.com/rust-lang/rust/commit/f9d4149c29e8b989fa3624993be379f380e48dcf

which was part of this pull request:

https://github.com/rust-lang/rust/issues/26025

Consider the following two lines from that commit:

https://github.com/rust-lang/rust/commit/f9d4149c29e8b989fa3624993be379f380e48dcf#diff-a3b24dbe2ea7c1981f9ac79f9745f40aL462

https://github.com/rust-lang/rust/commit/f9d4149c29e8b989fa3624993be379f380e48dcf#diff-a3b24dbe2ea7c1981f9ac79f9745f40aL469

The purpose of these lines is to register LLVM passes. Prior to the that
commit, the passes being handled were assumed to be ModulePasses (a
specific type of LLVM pass) since they were being added to a ModulePass
manager. After that commit, both lines were refactored (presumably in an
attempt to DRY out the code), but the ModulePasses were changed to be
registered to a FunctionPass manager. This change resulted in
ModulePasses being run, but a Function object was being passed as a
parameter to the pass instead of a Module, which resulted in
segmentation faults.

In this commit, I changed relevant sections of the code to check the
type of the passes being added and register them to the appropriate pass
manager.

Closes https://github.com/rust-lang/rust/issues/31067
Diffstat (limited to 'src/libstd/sys/unix/stack_overflow.rs')
0 files changed, 0 insertions, 0 deletions