about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/codegen/issue-98678-closure-generator.rs18
-rw-r--r--tests/codegen/issue-98678-cpp-like-enum.rs17
-rw-r--r--tests/codegen/issue-98678-native-enum.rs16
-rw-r--r--tests/codegen/issue-98678-struct-union.rs23
-rw-r--r--tests/codegen/issue-98678.rs46
5 files changed, 74 insertions, 46 deletions
diff --git a/tests/codegen/issue-98678-closure-generator.rs b/tests/codegen/issue-98678-closure-generator.rs
new file mode 100644
index 00000000000..b24f6e21c93
--- /dev/null
+++ b/tests/codegen/issue-98678-closure-generator.rs
@@ -0,0 +1,18 @@
+// This test verifies the accuracy of emitted file and line debuginfo metadata for closures and
+// generators.
+//
+// compile-flags: -C debuginfo=2
+#![crate_type = "lib"]
+#![feature(generators, stmt_expr_attributes)]
+
+// CHECK: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}/codegen/issue-98678-closure-generator.rs{{".*}})
+
+pub fn foo() {
+    // CHECK: !DICompositeType({{.*"[{]}}closure_env#0{{[}]".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
+    let closure = |x| x;
+    closure(0);
+
+    // CHECK: !DICompositeType({{.*"[{]}}generator_env#1{{[}]".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
+    let generator = #[coroutine]
+    || yield 1;
+}
diff --git a/tests/codegen/issue-98678-cpp-like-enum.rs b/tests/codegen/issue-98678-cpp-like-enum.rs
new file mode 100644
index 00000000000..30ea6cd9577
--- /dev/null
+++ b/tests/codegen/issue-98678-cpp-like-enum.rs
@@ -0,0 +1,17 @@
+// This test verifies the accuracy of emitted file and line debuginfo metadata for C++-like
+// enumerations.
+//
+// compile-flags: -C debuginfo=2
+#![crate_type = "lib"]
+
+// The use of CHECK-DAG here is because the C++-like enum is emitted before the `DIFile` node
+
+// CHECK-DAG: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}/codegen/issue-98678-cpp-like-enum.rs{{".*}})
+
+// CHECK-DAG: !DICompositeType({{.*"}}MyCppLikeEnum{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
+#[repr(C)]
+pub enum MyCppLikeEnum {
+    One,
+}
+
+pub fn foo(_: MyCppLikeEnum) {}
diff --git a/tests/codegen/issue-98678-native-enum.rs b/tests/codegen/issue-98678-native-enum.rs
new file mode 100644
index 00000000000..073cc60f77a
--- /dev/null
+++ b/tests/codegen/issue-98678-native-enum.rs
@@ -0,0 +1,16 @@
+// This test verifies the accuracy of emitted file and line debuginfo metadata for native
+// enumerations.
+//
+// compile-flags: -C debuginfo=2
+#![crate_type = "lib"]
+
+// CHECK: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}/codegen/issue-98678-native-enum.rs{{".*}})
+
+// CHECK: !DICompositeType({{.*"}}MyNativeEnum{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
+// CHECK: !DICompositeType({{.*}}DW_TAG_variant_part{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
+pub enum MyNativeEnum {
+    // CHECK: !DIDerivedType({{.*"}}One{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
+    One,
+}
+
+pub fn foo(_: MyNativeEnum) {}
diff --git a/tests/codegen/issue-98678-struct-union.rs b/tests/codegen/issue-98678-struct-union.rs
new file mode 100644
index 00000000000..4b6106eb1da
--- /dev/null
+++ b/tests/codegen/issue-98678-struct-union.rs
@@ -0,0 +1,23 @@
+// This test verifies the accuracy of emitted file and line debuginfo metadata for structs and
+// unions.
+//
+// compile-flags: -C debuginfo=2
+#![crate_type = "lib"]
+
+// CHECK: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}/codegen/issue-98678-struct-union.rs{{".*}})
+
+// CHECK: !DICompositeType({{.*"}}MyType{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
+pub struct MyType {
+    // CHECK: !DIDerivedType({{.*"}}i{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
+    i: i32,
+}
+
+// CHECK: !DICompositeType({{.*"}}MyUnion{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
+pub union MyUnion {
+    // CHECK: !DIDerivedType({{.*"}}i{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
+    i: i32,
+    // CHECK: !DIDerivedType({{.*"}}f{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
+    f: f32,
+}
+
+pub fn foo(_: MyType, _: MyUnion) {}
diff --git a/tests/codegen/issue-98678.rs b/tests/codegen/issue-98678.rs
deleted file mode 100644
index ab4e085a317..00000000000
--- a/tests/codegen/issue-98678.rs
+++ /dev/null
@@ -1,46 +0,0 @@
-// This test verifies the accuracy of emitted file and line debuginfo metadata.
-//
-// compile-flags: -C debuginfo=2
-#![crate_type = "lib"]
-#![feature(generators, stmt_expr_attributes)]
-
-// The use of CHECK-DAG here is because the C++-like enum is emitted before the `DIFile` node
-
-// CHECK-DAG: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}/codegen/issue-98678.rs{{".*}})
-
-// CHECK-DAG: !DICompositeType({{.*"}}MyCppLikeEnum{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-#[repr(C)]
-pub enum MyCppLikeEnum {
-    One,
-}
-
-// CHECK: !DICompositeType({{.*"}}MyType{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-pub struct MyType {
-    // CHECK: !DIDerivedType({{.*"}}i{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    i: i32,
-}
-
-// CHECK: !DICompositeType({{.*"}}MyUnion{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-pub union MyUnion {
-    // CHECK: !DIDerivedType({{.*"}}i{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    i: i32,
-    // CHECK: !DIDerivedType({{.*"}}f{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    f: f32,
-}
-
-// CHECK: !DICompositeType({{.*"}}MyNativeEnum{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 2]],
-// CHECK: !DICompositeType({{.*}}DW_TAG_variant_part{{.*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-pub enum MyNativeEnum {
-    // CHECK: !DIDerivedType({{.*"}}One{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    One,
-}
-
-pub fn foo(_: MyType, _: MyUnion, _: MyNativeEnum, _: MyCppLikeEnum) {
-    // CHECK: !DICompositeType({{.*"[{]}}closure_env#0{{[}]".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    let closure = |x| x;
-    closure(0);
-
-    // CHECK: !DICompositeType({{.*"[{]}}generator_env#1{{[}]".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
-    let generator = #[coroutine]
-    || yield 1;
-}