diff options
| author | Wesley Wiser <wwiser@gmail.com> | 2025-08-28 21:55:20 -0500 |
|---|---|---|
| committer | Wesley Wiser <wwiser@gmail.com> | 2025-08-28 21:55:20 -0500 |
| commit | 161e29dc8486e69f8e02c1587a1abf141a413987 (patch) | |
| tree | b0d0806e9d5f6f0994ff958946c310e328f17536 | |
| parent | 085bdc2aee2772c4f392a8afcd5421a8e8b6e9e4 (diff) | |
| download | rust-161e29dc8486e69f8e02c1587a1abf141a413987.tar.gz rust-161e29dc8486e69f8e02c1587a1abf141a413987.zip | |
Revert "fix(debuginfo): disable overflow check for"
This reverts commit 49eda8edd5c99e4c65c687fff0b8e194eb339a23.
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/debuginfo/metadata/type_map.rs | 4 | ||||
| -rw-r--r-- | tests/codegen-llvm/debuginfo-cyclic-structure.rs | 32 |
2 files changed, 2 insertions, 34 deletions
diff --git a/compiler/rustc_codegen_llvm/src/debuginfo/metadata/type_map.rs b/compiler/rustc_codegen_llvm/src/debuginfo/metadata/type_map.rs index d1502d2b1e6..56fb12d3c22 100644 --- a/compiler/rustc_codegen_llvm/src/debuginfo/metadata/type_map.rs +++ b/compiler/rustc_codegen_llvm/src/debuginfo/metadata/type_map.rs @@ -285,8 +285,8 @@ pub(super) fn build_type_with_children<'ll, 'tcx>( // Item(T), // } // ``` - let is_expanding_recursive = adt_def.is_enum() - && debug_context(cx).adt_stack.borrow().iter().any(|(parent_def_id, parent_args)| { + let is_expanding_recursive = + debug_context(cx).adt_stack.borrow().iter().any(|(parent_def_id, parent_args)| { if def_id == *parent_def_id { args.iter().zip(parent_args.iter()).any(|(arg, parent_arg)| { if let (Some(arg), Some(parent_arg)) = (arg.as_type(), parent_arg.as_type()) diff --git a/tests/codegen-llvm/debuginfo-cyclic-structure.rs b/tests/codegen-llvm/debuginfo-cyclic-structure.rs deleted file mode 100644 index b8cc5447741..00000000000 --- a/tests/codegen-llvm/debuginfo-cyclic-structure.rs +++ /dev/null @@ -1,32 +0,0 @@ -//@ compile-flags:-g -Copt-level=0 -C panic=abort - -// Check that debug information exists for structures containing loops (cyclic references). -// Previously it may incorrectly prune member information during recursive type inference check. - -// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "Arc<debuginfo_cyclic_structure::Inner<alloc::sync::Arc<debuginfo_cyclic_structure::Handle{{.*}}elements: ![[FIELDS:[0-9]+]] -// CHECK: ![[FIELDS]] = !{!{{.*}}} -// CHECK-NOT: ![[FIELDS]] = !{} - -#![crate_type = "lib"] - -use std::mem::MaybeUninit; -use std::sync::Arc; - -struct Inner<T> { - buffer: Box<MaybeUninit<T>>, -} -struct Shared { - shared: Arc<Inner<Arc<Handle>>>, -} -struct Handle { - shared: Shared, -} -struct Core { - inner: Arc<Inner<Arc<Handle>>>, -} - -#[no_mangle] -extern "C" fn test() { - let с = Core { inner: Arc::new(Inner { buffer: Box::new(MaybeUninit::uninit()) }) }; - std::hint::black_box(с); -} |
