File: unsafe-extern-blocks.rs

package info (click to toggle)
rustc 1.85.0%2Bdfsg3-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental, sid, trixie
  • size: 893,396 kB
  • sloc: xml: 158,127; python: 35,830; javascript: 19,497; cpp: 19,002; sh: 17,245; ansic: 13,127; asm: 4,376; makefile: 1,051; perl: 29; lisp: 29; ruby: 19; sql: 11
file content (29 lines) | stat: -rw-r--r-- 1,048 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Test to ensure the feature is working as expected.

#![crate_name = "foo"]

// @has 'foo/index.html'

// First we check that both the static and the function have a "sup" element
// to tell they're unsafe.

// @count - '//ul[@class="item-table"]//sup[@title="unsafe static"]' 1
// @has - '//ul[@class="item-table"]//sup[@title="unsafe static"]' '⚠'
// @count - '//ul[@class="item-table"]//sup[@title="unsafe function"]' 1
// @has - '//ul[@class="item-table"]//sup[@title="unsafe function"]' '⚠'

unsafe extern "C" {
    // @has 'foo/static.FOO.html'
    // @has - '//pre[@class="rust item-decl"]' 'pub static FOO: i32'
    pub safe static FOO: i32;
    // @has 'foo/static.BAR.html'
    // @has - '//pre[@class="rust item-decl"]' 'pub unsafe static BAR: i32'
    pub static BAR: i32;

    // @has 'foo/fn.foo.html'
    // @has - '//pre[@class="rust item-decl"]' 'pub extern "C" fn foo()'
    pub safe fn foo();
    // @has 'foo/fn.bar.html'
    // @has - '//pre[@class="rust item-decl"]' 'pub unsafe extern "C" fn bar()'
    pub fn bar();
}