mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-30 20:44:34 +00:00 
			
		
		
		
	 07931c5a08
			
		
	
	
		07931c5a08
		
			
		
	
	
	
	
		
			
			Sets the accessibility of types and fields in DWARF using `DW_AT_accessibility` attribute. `DW_AT_accessibility` (public/protected/private) isn't exactly right for Rust, but neither is `DW_AT_visibility` (local/exported/qualified), and there's no way to set `DW_AT_visbility` in LLVM's API. Signed-off-by: David Wood <david@davidtw.co>
		
			
				
	
	
		
			24 lines
		
	
	
		
			514 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			514 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // compile-flags: -C debuginfo=2
 | |
| 
 | |
| #![allow(dead_code)]
 | |
| 
 | |
| // Checks that visibility information is present in the debuginfo for crate-visibility structs.
 | |
| 
 | |
| mod module {
 | |
|     use std::hint::black_box;
 | |
| 
 | |
|     pub(crate) struct CrateFooStruct {
 | |
|         x: u32,
 | |
|     }
 | |
| 
 | |
|     // CHECK: {{!.*}} = !DICompositeType(tag: DW_TAG_structure_type, name: "CrateFooStruct"{{.*}}flags: DIFlagProtected{{.*}})
 | |
| 
 | |
|     pub fn use_everything() {
 | |
|         black_box(CrateFooStruct { x: 2 });
 | |
|     }
 | |
| }
 | |
| 
 | |
| fn main() {
 | |
|     module::use_everything();
 | |
| }
 |