File tree Expand file tree Collapse file tree 1 file changed +3
-6
lines changed
src/librustc/middle/trans Expand file tree Collapse file tree 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,
16941694 let arg = & args[ i] ;
16951695 let llarg = llvm:: LLVMGetParam ( cx. llfn , arg_n as c_uint ) ;
16961696
1697- // Mark `&mut T` as no-alias, as the borrowck pass ensures it's true
16981697 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
17041699 ast:: ty_uniq( _) => {
17051700 llvm:: LLVMAddAttribute ( llarg, lib:: llvm:: NoAliasAttribute as c_uint ) ;
17061701 }
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
17071704 _ => { }
17081705 }
17091706
You can’t perform that action at this time.
0 commit comments