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,
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