From 59ddadabe4e3d98b2f2cf1df5adbf36b8ee4e05b Mon Sep 17 00:00:00 2001 From: Markus Trippelsdorf Date: Fri, 23 Nov 2012 15:34:45 +0000 Subject: [PATCH] re PR c++/55418 (Valgrind: Conditional jump or move depends on uninitialised value(s) in implicitly_declare_fn() method.c:1623) 2012-11-23 Markus Trippelsdorf PR c++/55418 * method.c (implicitly_declare_fn): Properly initialize trivial_p. From-SVN: r193758 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/method.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c991780dfd87..47734c58d430 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2012-11-23 Markus Trippelsdorf + + PR c++/55418 + * method.c (implicitly_declare_fn): Properly initialize trivial_p. + 2012-11-22 Jason Merrill PR c++/55137 diff --git a/gcc/cp/method.c b/gcc/cp/method.c index 6dcb63a185e3..778daa82a704 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -1518,7 +1518,6 @@ implicitly_declare_fn (special_function_kind kind, tree type, tree name; HOST_WIDE_INT saved_processing_template_decl; bool deleted_p; - bool trivial_p; bool constexpr_p; /* Because we create declarations for implicitly declared functions @@ -1597,12 +1596,13 @@ implicitly_declare_fn (special_function_kind kind, tree type, tree inherited_base = (inherited_ctor ? DECL_CONTEXT (inherited_ctor) : NULL_TREE); + bool trivial_p = false; + if (inherited_ctor && TREE_CODE (inherited_ctor) == TEMPLATE_DECL) { /* For an inheriting constructor template, just copy these flags from the inherited constructor template for now. */ raises = TYPE_RAISES_EXCEPTIONS (TREE_TYPE (inherited_ctor)); - trivial_p = false; deleted_p = DECL_DELETED_FN (DECL_TEMPLATE_RESULT (inherited_ctor)); constexpr_p = DECL_DECLARED_CONSTEXPR_P (DECL_TEMPLATE_RESULT (inherited_ctor)); -- 2.47.3