diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/ui/link-section.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/test/ui/link-section.rs b/src/test/ui/link-section.rs new file mode 100644 index 000000000..48efb07ff --- /dev/null +++ b/src/test/ui/link-section.rs @@ -0,0 +1,37 @@ +// run-pass + +#![allow(non_upper_case_globals)] +#[cfg(not(target_os = "macos"))] +#[link_section=".moretext"] +fn i_live_in_more_text() -> &'static str { + "knock knock" +} + +#[cfg(not(target_os = "macos"))] +#[link_section=".imm"] +static magic: usize = 42; + +#[cfg(not(target_os = "macos"))] +#[link_section=".mut"] +static mut frobulator: usize = 0xdeadbeef; + +#[cfg(target_os = "macos")] +#[link_section="__TEXT,__moretext"] +fn i_live_in_more_text() -> &'static str { + "knock knock" +} + +#[cfg(target_os = "macos")] +#[link_section="__RODATA,__imm"] +static magic: usize = 42; + +#[cfg(target_os = "macos")] +#[link_section="__DATA,__mut"] +static mut frobulator: usize = 0xdeadbeef; + +pub fn main() { + unsafe { + frobulator = 0x12345678; + println!("{} {} {}", i_live_in_more_text(), magic, frobulator); + } +} |