diff options
| author | Chris Simpkins <git.simpkins@gmail.com> | 2020-03-12 09:53:49 -0400 |
|---|---|---|
| committer | Chris Simpkins <git.simpkins@gmail.com> | 2020-03-12 09:57:05 -0400 |
| commit | cf929f77bffc9786fa7c15e75be7599cfc551225 (patch) | |
| tree | d664ceba4e6e9772b58abdb198708a20b3257c74 /src | |
| parent | 5d04ce67fd14538d03fa47a2598f80d49fd564c6 (diff) | |
| download | rust-cf929f77bffc9786fa7c15e75be7599cfc551225.tar.gz rust-cf929f77bffc9786fa7c15e75be7599cfc551225.zip | |
support LLVM globals corresponding to miri allocations
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_codegen_llvm/common.rs | 11 | ||||
| -rw-r--r-- | src/test/codegen/consts.rs | 4 | ||||
| -rw-r--r-- | src/test/codegen/remap_path_prefix/main.rs | 2 |
3 files changed, 10 insertions, 7 deletions
diff --git a/src/librustc_codegen_llvm/common.rs b/src/librustc_codegen_llvm/common.rs index 1d6bfb32159..d2d8097233a 100644 --- a/src/librustc_codegen_llvm/common.rs +++ b/src/librustc_codegen_llvm/common.rs @@ -259,11 +259,14 @@ impl ConstMethods<'tcx> for CodegenCx<'ll, 'tcx> { let base_addr = match alloc_kind { Some(GlobalAlloc::Memory(alloc)) => { let init = const_alloc_to_llvm(self, alloc); - if alloc.mutability == Mutability::Mut { - self.static_addr_of_mut(init, alloc.align, None) - } else { - self.static_addr_of(init, alloc.align, None) + let value = match alloc.mutability { + Mutability::Mut => self.static_addr_of_mut(init, alloc.align, None), + _ => self.static_addr_of(init, alloc.align, None), + }; + if !self.sess().fewer_names() { + llvm::set_value_name(value, format!("{:?}", ptr.alloc_id).as_bytes()); } + value } Some(GlobalAlloc::Function(fn_instance)) => self.get_fn_addr(fn_instance), Some(GlobalAlloc::Static(def_id)) => { diff --git a/src/test/codegen/consts.rs b/src/test/codegen/consts.rs index a89ecdfd3a9..e53e75b339b 100644 --- a/src/test/codegen/consts.rs +++ b/src/test/codegen/consts.rs @@ -10,11 +10,11 @@ // CHECK: @STATIC = {{.*}}, align 4 // This checks the constants from inline_enum_const -// CHECK: @{{[0-9]+}} = {{.*}}, align 2 +// CHECK: @alloc5 = {{.*}}, align 2 // This checks the constants from {low,high}_align_const, they share the same // constant, but the alignment differs, so the higher one should be used -// CHECK: [[LOW_HIGH:@[0-9]+]] = {{.*}} getelementptr inbounds (<{ [8 x i8] }>, <{ [8 x i8] }>* @2, i32 0, i32 0, i32 0), {{.*}}, +// CHECK: [[LOW_HIGH:@[0-9]+]] = {{.*}} getelementptr inbounds (<{ [8 x i8] }>, <{ [8 x i8] }>* @alloc15, i32 0, i32 0, i32 0), {{.*}} #[derive(Copy, Clone)] // repr(i16) is required for the {low,high}_align_const test diff --git a/src/test/codegen/remap_path_prefix/main.rs b/src/test/codegen/remap_path_prefix/main.rs index 52ffb97a5b2..4724dc3c3e5 100644 --- a/src/test/codegen/remap_path_prefix/main.rs +++ b/src/test/codegen/remap_path_prefix/main.rs @@ -12,7 +12,7 @@ mod aux_mod; include!("aux_mod.rs"); // Here we check that the expansion of the file!() macro is mapped. -// CHECK: @0 = private unnamed_addr constant <{ [34 x i8] }> <{ [34 x i8] c"/the/src/remap_path_prefix/main.rs" }>, align 1 +// CHECK: @alloc1 = private unnamed_addr constant <{ [34 x i8] }> <{ [34 x i8] c"/the/src/remap_path_prefix/main.rs" }>, align 1 pub static FILE_PATH: &'static str = file!(); fn main() { |
