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

Register LLVM passes with the correct LLVM pass manager. #31176

Merged
merged 1 commit into from
Jan 25, 2016

Commits on Jan 25, 2016

  1. Register LLVM passes with the correct LLVM pass manager.

    LLVM was upgraded to a new version in this commit:
    
    rust-lang@f9d4149
    
    which was part of this pull request:
    
    rust-lang#26025
    
    Consider the following two lines from that commit:
    
    rust-lang@f9d4149#diff-a3b24dbe2ea7c1981f9ac79f9745f40aL462
    
    rust-lang@f9d4149#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 rust-lang#31067
    frewsxcv committed Jan 25, 2016
    Configuration menu
    Copy the full SHA
    d942621 View commit details
    Browse the repository at this point in the history