Hi! Say on struct S { explicit S () {}; } s; struct T { explicit T (int x) {}; } t(2); struct U { explicit operator int () { return 6; } } u; G++ mysteriously emits DW_AT_explicit only on T::T(int) and not on S::S() nor U::operator int().
Fixed thusly, ok for trunk? 2014-02-19 Jakub Jelinek <ja...@redhat.com> PR debug/56563 * cp-objcp-common.c (cp_function_decl_explicit_p): Remove FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check. --- gcc/cp/cp-objcp-common.c.jj 2014-01-02 23:50:57.000000000 +0100 +++ gcc/cp/cp-objcp-common.c 2014-02-19 15:13:05.576141197 +0100 @@ -160,7 +160,6 @@ bool cp_function_decl_explicit_p (tree decl) { return (decl - && FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node && DECL_LANG_SPECIFIC (STRIP_TEMPLATE (decl)) && DECL_NONCONVERTING_P (decl)); } Jakub