Skip to content

Commit d09eff6

Browse files
author
James Miller
committed
---
yaml --- r: 60709 b: refs/heads/auto c: 2c2346e h: refs/heads/master i: 60707: 939b7d5 v: v3
1 parent 387da00 commit d09eff6

File tree

3 files changed

+15
-27
lines changed

3 files changed

+15
-27
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1414
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1515
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1616
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
17-
refs/heads/auto: 510d0f221c5a9ca7671149fe7e7bb802592edc06
17+
refs/heads/auto: 2c2346e3d4f999b95a56444d978c3ea792828263
1818
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1919
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c

branches/auto/src/librustc/middle/trans/base.rs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1694,7 +1694,20 @@ pub fn create_llargs_for_fn_args(cx: fn_ctxt,
16941694
vec::from_fn(args.len(), |i| {
16951695
unsafe {
16961696
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
16981711
}
16991712
})
17001713
}

branches/auto/src/libstd/os.rs

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -675,11 +675,6 @@ pub fn mkdir_recursive(p: &Path, mode: c_int) -> bool {
675675
/// Lists the contents of a directory
676676
#[allow(non_implicitly_copyable_typarams)]
677677
pub fn list_dir(p: &Path) -> ~[~str] {
678-
if p.components.is_empty() && !p.is_absolute() {
679-
// Not sure what the right behavior is here, but this
680-
// prevents a bounds check failure later
681-
return ~[];
682-
}
683678
unsafe {
684679
#[cfg(target_os = "linux")]
685680
#[cfg(target_os = "android")]
@@ -1601,26 +1596,6 @@ mod tests {
16011596
}
16021597
}
16031598
1604-
#[test]
1605-
fn list_dir_empty_path() {
1606-
let dirs = os::list_dir(&Path(""));
1607-
assert!(dirs.is_empty());
1608-
}
1609-
1610-
#[test]
1611-
#[cfg(not(windows))]
1612-
fn list_dir_root() {
1613-
let dirs = os::list_dir(&Path("/"));
1614-
assert!(dirs.len() > 1);
1615-
}
1616-
#[test]
1617-
#[cfg(windows)]
1618-
fn list_dir_root() {
1619-
let dirs = os::list_dir(&Path("C:\\"));
1620-
assert!(dirs.len() > 1);
1621-
}
1622-
1623-
16241599
#[test]
16251600
fn path_is_dir() {
16261601
assert!((os::path_is_dir(&Path("."))));

0 commit comments

Comments
 (0)