File tree Expand file tree Collapse file tree 2 files changed +15
-2
lines changed
branches/try2/src/librustc/middle/trans Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
5
5
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
- refs/heads/try2: d89a6ceb1b36e7460afece5b3392c8f24f7ef6ce
8
+ refs/heads/try2: 1f8c4b096da8d7c6436038730fa4a862e1ac91f5
9
9
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
10
10
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
11
11
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
Original file line number Diff line number Diff line change @@ -1694,7 +1694,20 @@ pub fn create_llargs_for_fn_args(cx: fn_ctxt,
1694
1694
vec:: from_fn ( args. len ( ) , |i| {
1695
1695
unsafe {
1696
1696
let arg_n = first_real_arg + i;
1697
- llvm:: LLVMGetParam ( cx. llfn , arg_n as c_uint )
1697
+ let arg = & args[ i] ;
1698
+ let llarg = llvm:: LLVMGetParam ( cx. llfn , arg_n as c_uint ) ;
1699
+
1700
+ // Mark `&mut T` as no-alias, as the borrowck pass ensures it's true
1701
+ match arg. ty . node {
1702
+ ast:: ty_rptr( _, mt) => {
1703
+ if mt. mutbl == ast:: m_mutbl {
1704
+ llvm:: LLVMAddAttribute ( llarg, lib:: llvm:: NoAliasAttribute as c_uint ) ;
1705
+ }
1706
+ }
1707
+ _ => { }
1708
+ }
1709
+
1710
+ llarg
1698
1711
}
1699
1712
} )
1700
1713
}
You can’t perform that action at this time.
0 commit comments