File tree 1 file changed +3
-6
lines changed
src/librustc/middle/trans
1 file changed +3
-6
lines changed Original file line number Diff line number Diff line change @@ -1694,16 +1694,13 @@ pub fn create_llargs_for_fn_args(cx: fn_ctxt,
1694
1694
let arg = & args[ i] ;
1695
1695
let llarg = llvm:: LLVMGetParam ( cx. llfn , arg_n as c_uint ) ;
1696
1696
1697
- // Mark `&mut T` as no-alias, as the borrowck pass ensures it's true
1698
1697
match arg. ty . node {
1699
- ast:: ty_rptr( _, mt) => {
1700
- if mt. mutbl == ast:: m_mutbl {
1701
- llvm:: LLVMAddAttribute ( llarg, lib:: llvm:: NoAliasAttribute as c_uint ) ;
1702
- }
1703
- }
1698
+ // `~` pointers never alias other parameters, because ownership was transferred
1704
1699
ast:: ty_uniq( _) => {
1705
1700
llvm:: LLVMAddAttribute ( llarg, lib:: llvm:: NoAliasAttribute as c_uint ) ;
1706
1701
}
1702
+ // FIXME: #6785: `&mut` can only alias `&const` and `@mut`, we should check for
1703
+ // those in the other parameters and then mark it as `noalias` if there aren't any
1707
1704
_ => { }
1708
1705
}
1709
1706
You can’t perform that action at this time.
0 commit comments