public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/52311] New: implicitly_declare_fn: valgrind problem
@ 2012-02-19 17:58 dcb314 at hotmail dot com
  2012-02-19 20:01 ` [Bug c++/52311] " jakub at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: dcb314 at hotmail dot com @ 2012-02-19 17:58 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52311

             Bug #: 52311
           Summary: implicitly_declare_fn: valgrind problem
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: dcb314@hotmail.com


I just tried to compile the file
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle2.C under valgrind on
trunk dated 20120216 on an AMD x86_64 box.

Valgrind said

==19480== Conditional jump or move depends on uninitialised value(s)
==19480==    at 0x666A2A: implicitly_declare_fn(special_function_kind,
tree_node*, bool) (method.c:1538)
==19480==    by 0x66914A: lazily_declare_fn(special_function_kind, tree_node*)
(method.c:1766)
==19480==    by 0x66FA94: lookup_fnfields_1(tree_node*, tree_node*)
(search.c:1449)
==19480==    by 0x673156: lookup_field_r(tree_node*, void*) (search.c:1479)
==19480==    by 0x66D743:
_Z12dfs_walk_allP9tree_nodePFS0_S0_PvES3_S1_.constprop.7 (search.c:1581)
==19480==    by 0x66F5FB: lookup_member(tree_node*, tree_node*, int, bool, int)
(search.c:1213)

No special flags required.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug c++/52311] implicitly_declare_fn: valgrind problem
  2012-02-19 17:58 [Bug c++/52311] New: implicitly_declare_fn: valgrind problem dcb314 at hotmail dot com
@ 2012-02-19 20:01 ` jakub at gcc dot gnu.org
  2012-03-22  9:29 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-19 20:01 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52311

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-02-19
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |jason at gcc dot gnu.org
   Target Milestone|---                         |4.7.0
     Ever Confirmed|0                           |1

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-19 19:48:39 UTC ---
In the
      if (LAMBDA_TYPE_P (ctype)
          && (sfk == sfk_constructor
              || sfk == sfk_copy_assignment))
        {
          *deleted_p = true;
          return;
        }
case synthesized_method_walk doesn't initialize *trivial_p and *constexpr_p.
While the caller clears constexpr_p in that case:
  /* Don't bother marking a deleted constructor as constexpr.  */
  if (deleted_p)
    constexpr_p = false;    
...
it doesn't clear trivial_p (nor set) and uses it in:
  if (!trivial_p && type_has_trivial_fn (type, kind))
    type_set_nontrivial_flag (type, kind);

So, to fix this, either synthesized_method_walk should in that case initialize
*trivial_p (either to false or true, or conditionally, depending on what is
right), or the caller should do the same (can it do it for all deleted_p types,
not just the lambda ctors/copyctors?), or the if (!trivial_p && should also
guarded with !deleted_p.
Jason?


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug c++/52311] implicitly_declare_fn: valgrind problem
  2012-02-19 17:58 [Bug c++/52311] New: implicitly_declare_fn: valgrind problem dcb314 at hotmail dot com
  2012-02-19 20:01 ` [Bug c++/52311] " jakub at gcc dot gnu.org
@ 2012-03-22  9:29 ` rguenth at gcc dot gnu.org
  2012-07-02 13:06 ` rguenth at gcc dot gnu.org
  2012-12-05 11:42 ` paolo.carlini at oracle dot com
  3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-03-22  9:29 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52311

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.7.0                       |4.7.1

--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-03-22 08:27:21 UTC ---
GCC 4.7.0 is being released, adjusting target milestone.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug c++/52311] implicitly_declare_fn: valgrind problem
  2012-02-19 17:58 [Bug c++/52311] New: implicitly_declare_fn: valgrind problem dcb314 at hotmail dot com
  2012-02-19 20:01 ` [Bug c++/52311] " jakub at gcc dot gnu.org
  2012-03-22  9:29 ` rguenth at gcc dot gnu.org
@ 2012-07-02 13:06 ` rguenth at gcc dot gnu.org
  2012-12-05 11:42 ` paolo.carlini at oracle dot com
  3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-07-02 13:06 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52311

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.7.1                       |---


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug c++/52311] implicitly_declare_fn: valgrind problem
  2012-02-19 17:58 [Bug c++/52311] New: implicitly_declare_fn: valgrind problem dcb314 at hotmail dot com
                   ` (2 preceding siblings ...)
  2012-07-02 13:06 ` rguenth at gcc dot gnu.org
@ 2012-12-05 11:42 ` paolo.carlini at oracle dot com
  3 siblings, 0 replies; 5+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-12-05 11:42 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52311

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |DUPLICATE

--- Comment #3 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-12-05 11:42:05 UTC ---
Dup.

*** This bug has been marked as a duplicate of bug 55418 ***


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-12-05 11:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-19 17:58 [Bug c++/52311] New: implicitly_declare_fn: valgrind problem dcb314 at hotmail dot com
2012-02-19 20:01 ` [Bug c++/52311] " jakub at gcc dot gnu.org
2012-03-22  9:29 ` rguenth at gcc dot gnu.org
2012-07-02 13:06 ` rguenth at gcc dot gnu.org
2012-12-05 11:42 ` paolo.carlini at oracle dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).