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 <[email protected]>
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