about summary refs log tree commit diff
path: root/tests/codegen
diff options
context:
space:
mode:
authorCamille GILLOT <gillot.camille@gmail.com>2023-08-26 15:40:29 +0000
committerCamille GILLOT <gillot.camille@gmail.com>2023-08-26 16:54:28 +0000
commit930b2e72eeabf4cacf59d07999fac565836d05bd (patch)
tree4683351a1efe16973668aca90e2320f7f8710ec0 /tests/codegen
parentf49494ecce9015a6b65a2a0c87a414b357e390c7 (diff)
downloadrust-930b2e72eeabf4cacf59d07999fac565836d05bd.tar.gz
rust-930b2e72eeabf4cacf59d07999fac565836d05bd.zip
Do not produce fragment for ZST.
Diffstat (limited to 'tests/codegen')
-rw-r--r--tests/codegen/sroa-fragment-debuginfo.rs14
1 files changed, 6 insertions, 8 deletions
diff --git a/tests/codegen/sroa-fragment-debuginfo.rs b/tests/codegen/sroa-fragment-debuginfo.rs
index dbde2226e5a..9762777835c 100644
--- a/tests/codegen/sroa-fragment-debuginfo.rs
+++ b/tests/codegen/sroa-fragment-debuginfo.rs
@@ -29,17 +29,15 @@ pub struct ZstSlice<'input> {
 
 #[no_mangle]
 pub fn zst(s: &[u8]) {
+    // The field `extra` is a ZST. The fragment for the field `slice` encompasses the whole
+    // variable, so is not a fragment. In that case, the variable must have no fragment.
+
 // CHECK: void @zst(
-// CHECK: %slice.dbg.spill1 = alloca { ptr, i64 },
-// CHECK: %slice.dbg.spill = alloca %Zst,
-// CHECK: %s.dbg.spill = alloca { ptr, i64 },
-// CHECK: call void @llvm.dbg.declare(metadata ptr %s.dbg.spill, metadata ![[S_ZST:.*]], metadata !DIExpression()),
-// CHECK: call void @llvm.dbg.declare(metadata ptr %slice.dbg.spill, metadata ![[SLICE_ZST:.*]], metadata !DIExpression(DW_OP_LLVM_fragment, 0, 0)),
-// CHECK: call void @llvm.dbg.declare(metadata ptr %slice.dbg.spill1, metadata ![[SLICE_ZST]], metadata !DIExpression()),
+// CHECK-NOT: call void @llvm.dbg.declare(metadata ptr %slice.dbg.spill, metadata !{}, metadata !DIExpression(DW_OP_LLVM_fragment,
+// CHECK: call void @llvm.dbg.declare(metadata ptr %{{.*}}, metadata ![[SLICE_ZST:.*]], metadata !DIExpression()),
+// CHECK-NOT: call void @llvm.dbg.declare(metadata ptr %{{.*}}, metadata ![[SLICE_ZST]],
     let slice = ZstSlice { slice: s, extra: Zst };
 }
 
 // CHECK: ![[S_EXTRA]] = !DILocalVariable(name: "s",
 // CHECK: ![[SLICE_EXTRA]] = !DILocalVariable(name: "slice",
-// CHECK: ![[S_ZST]] = !DILocalVariable(name: "s",
-// CHECK: ![[SLICE_ZST]] = !DILocalVariable(name: "slice",