https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79345

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-02-08
                 CC|                            |msebor at gcc dot gnu.org
            Summary|passing yet-uninitialized   |[6/7 Regression] passing
                   |member as argument to base  |yet-uninitialized member as
                   |class constructor should    |argument to base class
                   |warn (-Wunitialized)        |constructor should warn
                   |                            |(-Wunitialized)
     Ever confirmed|0                           |1

--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
Confirmed.  Bisection points to r222135 (gcc 6.0.0):
------------------------------------------------------------------------
r222135 | jason | 2015-04-15 17:17:29 -0400 (Wed, 15 Apr 2015) | 5 lines

        * constexpr.c (cxx_eval_store_expression): Ignore clobbers.
        (build_constexpr_constructor_member_initializers): Loop to find
        the BIND_EXPR.
        * decl.c (start_preparsed_function): Clobber the object at the
        beginning of a constructor.


A somewhat simplified test case:

struct A {
  A (int);
};

struct B: A {
  const bool x = true;

  B (): A (x ? 3 : 7) { }
};

void f (void*);
void g ()
{
  B b;
  f (&b);
}

Reply via email to