Skip to content

Commit a38d5aa

Browse files
author
Keegan McAllister
committed
---
yaml --- r: 137559 b: refs/heads/snap-stage3 c: 4417968 h: refs/heads/master i: 137557: 5553589 137555: 8fbe4bf 137551: 62f89fa v: v3
1 parent 177f4db commit a38d5aa

File tree

4 files changed

+59
-1
lines changed

4 files changed

+59
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 63fe80e1ffd036e99e1c707116774ac10203e2f1
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: d7fff9f15bfe08c765e74557eb120d25c90a3a3b
4+
refs/heads/snap-stage3: 441796831f9d57dbb336805b7ddee5097c407d58
55
refs/heads/try: cd53dac86b43e0b46f06ab265b71526242a2fc5e
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
-include ../tools.mk
2+
3+
all:
4+
$(RUSTC) -O --emit asm attr.rs
5+
! grep -q morestack $(TMPDIR)/attr.s
6+
$(RUSTC) -O --emit asm flag.rs
7+
grep -q morestack $(TMPDIR)/flag.s
8+
$(RUSTC) -O --emit asm -C no-stack-check flag.rs
9+
! grep -q morestack $(TMPDIR)/flag.s
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![crate_type="lib"]
12+
13+
extern {
14+
// Prevents optimizing away the stack buffer.
15+
// This symbol is undefined, but the code doesn't need to pass
16+
// the linker.
17+
fn black_box(ptr: *const u8);
18+
}
19+
20+
#[no_stack_check]
21+
pub unsafe fn foo() {
22+
// Make sure we use the stack
23+
let x: [u8, ..50] = [0, ..50];
24+
black_box(x.as_ptr());
25+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![crate_type="lib"]
12+
13+
extern {
14+
// Prevents optimizing away the stack buffer.
15+
// This symbol is undefined, but the code doesn't need to pass
16+
// the linker.
17+
fn black_box(ptr: *const u8);
18+
}
19+
20+
pub unsafe fn foo() {
21+
// Make sure we use the stack
22+
let x: [u8, ..50] = [0, ..50];
23+
black_box(x.as_ptr());
24+
}

0 commit comments

Comments
 (0)