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

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Marek Polacek <mpola...@gcc.gnu.org>:

https://gcc.gnu.org/g:fde96e8205f343e6471a11cc9def967bb5dd5362

commit r15-1946-gfde96e8205f343e6471a11cc9def967bb5dd5362
Author: Marek Polacek <pola...@redhat.com>
Date:   Tue Jul 2 15:22:39 2024 -0400

    c++: array new with value-initialization [PR115645]

    This extends the r11-5179 fix which doesn't work with multidimensional
    arrays.  In particular,

      struct S {
        explicit S() { }
      };
      auto p = new S[1][1]();

    should not say "converting to S from initializer list would use
    explicit constructor" because there's no {}.  However, since we
    went into the block where we create a {}, we got confused.  We
    should not have gotten there but we did because array_p was true.

    This patch refines the check once more.

            PR c++/115645

    gcc/cp/ChangeLog:

            * init.cc (build_new): Don't do any deduction for arrays with
            bounds if it's value-initialized.

    gcc/testsuite/ChangeLog:

            * g++.dg/expr/anew7.C: New test.

Reply via email to