Skip to content

Commit ea53c48

Browse files
jldcatamorphism
authored andcommitted
Make empty structs debug-printable
1 parent 1b4f3fa commit ea53c48

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/librustc/lib/llvm.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1330,9 +1330,10 @@ fn type_to_str_inner(names: type_names, +outer0: ~[TypeRef], ty: TypeRef) ->
13301330
let mut s: ~str = ~"{";
13311331
let n_elts = llvm::LLVMCountStructElementTypes(ty) as uint;
13321332
let mut elts = vec::from_elem(n_elts, 0 as TypeRef);
1333-
llvm::LLVMGetStructElementTypes(ty,
1334-
ptr::to_mut_unsafe_ptr(
1335-
&mut elts[0]));
1333+
if elts.len() > 0 {
1334+
llvm::LLVMGetStructElementTypes(
1335+
ty, ptr::to_mut_unsafe_ptr(&mut elts[0]));
1336+
}
13361337
s += tys_str(names, outer, elts);
13371338
s += ~"}";
13381339
return s;
@@ -1398,8 +1399,10 @@ fn struct_element_types(struct_ty: TypeRef) -> ~[TypeRef] {
13981399
let mut buf: ~[TypeRef] =
13991400
vec::from_elem(count as uint,
14001401
cast::transmute::<uint,TypeRef>(0));
1401-
llvm::LLVMGetStructElementTypes(struct_ty,
1402-
ptr::to_mut_unsafe_ptr(&mut buf[0]));
1402+
if buf.len() > 0 {
1403+
llvm::LLVMGetStructElementTypes(
1404+
struct_ty, ptr::to_mut_unsafe_ptr(&mut buf[0]));
1405+
}
14031406
return move buf;
14041407
}
14051408
}

0 commit comments

Comments
 (0)