mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 04:57:19 +00:00 
			
		
		
		
	 20ebbf467d
			
		
	
	
		20ebbf467d
		
	
	
	
	
		
			
			Combining revisions with only-arch allows specifying that a test only applies to a handful of targets. This allows removing a large amount of repetition in the test suite for tests that do not benefit. The revisions are suboptimal for this for some tests, so they aren't preferred in those cases.
		
			
				
	
	
		
			48 lines
		
	
	
		
			755 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			755 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // revisions: x32 x64
 | |
| //[x32] only-x86
 | |
| //[x64] only-x86_64
 | |
| // compile-flags: -C no-prepopulate-passes
 | |
| 
 | |
| #![crate_type = "lib"]
 | |
| #![no_std]
 | |
| 
 | |
| use core::arch::global_asm;
 | |
| 
 | |
| // CHECK-LABEL: foo
 | |
| // CHECK: module asm
 | |
| // CHECK: module asm "{{[[:space:]]+}}jmp baz"
 | |
| // any other global_asm will be appended to this first block, so:
 | |
| // CHECK-LABEL: bar
 | |
| // CHECK: module asm "{{[[:space:]]+}}jmp quux"
 | |
| global_asm!(
 | |
|     r#"
 | |
|     .global foo
 | |
| foo:
 | |
|     jmp baz
 | |
| "#
 | |
| );
 | |
| 
 | |
| extern "C" {
 | |
|     fn foo();
 | |
| }
 | |
| 
 | |
| // CHECK-LABEL: @baz
 | |
| #[no_mangle]
 | |
| pub unsafe extern "C" fn baz() {}
 | |
| 
 | |
| // no checks here; this has been appended to the first occurrence
 | |
| global_asm!(
 | |
|     r#"
 | |
|     .global bar
 | |
| bar:
 | |
|     jmp quux
 | |
| "#
 | |
| );
 | |
| 
 | |
| extern "C" {
 | |
|     fn bar();
 | |
| }
 | |
| 
 | |
| #[no_mangle]
 | |
| pub unsafe extern "C" fn quux() {}
 |