Skip to content

Commit

Permalink
Do not emit "class method" debuginfo for types that are not DIComposi…
Browse files Browse the repository at this point in the history
…teType.
  • Loading branch information
eddyb committed Aug 26, 2016
1 parent e07dd59 commit 8407952
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/librustc_trans/debuginfo/mod.rs
Expand Up @@ -419,7 +419,15 @@ pub fn create_function_debug_context<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>,
let impl_self_ty = monomorphize::apply_param_substs(cx.tcx(),
instance.substs,
&impl_self_ty);
Some(type_metadata(cx, impl_self_ty, syntax_pos::DUMMY_SP))

// Only "class" methods are generally understood by LLVM,
// so avoid methods on other types (e.g. `<*mut T>::null`).
match impl_self_ty.sty {
ty::TyStruct(..) | ty::TyEnum(..) => {
Some(type_metadata(cx, impl_self_ty, syntax_pos::DUMMY_SP))
}
_ => None
}
} else {
// For trait method impls we still use the "parallel namespace"
// strategy
Expand Down

0 comments on commit 8407952

Please sign in to comment.