public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3
@ 2021-04-16  5:37 lh_mouse at 126 dot com
  2021-04-16  7:36 ` [Bug c++/100111] [10/11 Regression] `-fno-elide-constructors` with `constexpr` ctors " rguenth at gcc dot gnu.org
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: lh_mouse at 126 dot com @ 2021-04-16  5:37 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 100111
           Summary: `-fno-elide-constructors` causes ICE in GCC 10.3
           Product: gcc
           Version: 10.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: lh_mouse at 126 dot com
  Target Milestone: ---
              Host: x86_64-linux-gnu
            Target: x86_64-linux-gnu

Created attachment 50610
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50610&action=edit
minimum testcase

```
lh_mouse@lhmouse-ideapad ~/Desktop $ cat ice.cc
// g++-10 -fno-elide-constructors ice.cc

struct b {};
struct j : b {
  int e;
  constexpr j(b k) : b(k), e() {}
};
struct g {
  j h;
  constexpr g() : h({}) {}
} a;
lh_mouse@lhmouse-ideapad ~/Desktop $ g++-10 -fno-elide-constructors ice.cc
ice.cc:11:3:   in ‘constexpr’ expansion of ‘a.g::g()’
ice.cc:10:23:   in ‘constexpr’ expansion of ‘((g*)this)->g::h.j::j((b(), b()))’
ice.cc:11:3: internal compiler error: in cxx_eval_store_expression, at
cp/constexpr.c:4939
   11 | } a;
      |   ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-10/README.Bugs> for instructions.
```

```
lh_mouse@lhmouse-ideapad ~/Desktop $ g++-10 -v
Using built-in specs.
COLLECT_GCC=g++-10
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/10/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
10.3.0-1ubuntu1~20.04~2' --with-bugurl=file:///usr/share/doc/gcc-10/README.Bugs
--enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr
--with-gcc-major-version-only --program-suffix=-10
--program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object
--disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib
--enable-libphobos-checking=release --with-target-system-zlib=auto
--enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686
--with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib
--with-tune=generic
--enable-offload-targets=nvptx-none=/build/gcc-10-S8Osas/gcc-10-10.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-10-S8Osas/gcc-10-10.3.0/debian/tmp-gcn/usr,hsa
--without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
--with-build-config=bootstrap-lto-lean --enable-link-mutex
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1~20.04~2) 
```

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

* [Bug c++/100111] [10/11 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
@ 2021-04-16  7:36 ` rguenth at gcc dot gnu.org
  2021-04-16  8:14 ` jakub at gcc dot gnu.org
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-16  7:36 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
            Summary|`-fno-elide-constructors`   |[10/11 Regression]
                   |with `constexpr` ctors      |`-fno-elide-constructors`
                   |causes ICE in GCC 10.3      |with `constexpr` ctors
                   |                            |causes ICE in GCC 10.3
   Last reconfirmed|                            |2021-04-16
   Target Milestone|---                         |10.4
           Keywords|                            |ice-on-valid-code

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.

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

* [Bug c++/100111] [10/11 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
  2021-04-16  7:36 ` [Bug c++/100111] [10/11 Regression] `-fno-elide-constructors` with `constexpr` ctors " rguenth at gcc dot gnu.org
@ 2021-04-16  8:14 ` jakub at gcc dot gnu.org
  2021-04-16  9:04 ` jakub at gcc dot gnu.org
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-16  8:14 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |jason at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r11-6895-g94ff4c9dd98f39280fba22d1ad0958fb25a5363b aka PR98463 fix
which has been backported in r10-9314-g2127d2c3ee23bbd03f02d88fd82403408696ee4a 
to 10 branch.

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

* [Bug c++/100111] [10/11 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
  2021-04-16  7:36 ` [Bug c++/100111] [10/11 Regression] `-fno-elide-constructors` with `constexpr` ctors " rguenth at gcc dot gnu.org
  2021-04-16  8:14 ` jakub at gcc dot gnu.org
@ 2021-04-16  9:04 ` jakub at gcc dot gnu.org
  2021-04-16 10:16 ` jakub at gcc dot gnu.org
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-16  9:04 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The ICE is during ((struct j *) this)->e = 0 evaluation and the problem seems
to be that *valp, which is CONSTRUCTOR for the a variable initializer, is
{.h={}}
where the type of the inner {} is b rather than j.
That invalid CONSTRUCTOR elt seems to have been inserted when
cxx_eval_store_expression
*(struct b *) this = *(const struct b &) (const struct b *) &k;
I wonder if the bug isn't in:
  /* Don't share a CONSTRUCTOR that might be changed later.  */
  init = unshare_constructor (init);

  if (*valp && TREE_CODE (*valp) == CONSTRUCTOR
      && TREE_CODE (init) == CONSTRUCTOR)
    {
      /* An outer ctx->ctor might be pointing to *valp, so replace
         its contents.  */
      if (!same_type_ignoring_top_level_qualifiers_p (TREE_TYPE (init),
                                                      TREE_TYPE (*valp)))
        {
          /* For initialization of an empty base, the original target will be
           *(base*)this, evaluation of which resolves to the object
           argument, which has the derived type rather than the base type.  In
           this situation, just evaluate the initializer and return, since
           there's no actual data to store.  */
          gcc_assert (is_empty_class (TREE_TYPE (init)) && !lval);
          return init;
        }
      CONSTRUCTOR_ELTS (*valp) = CONSTRUCTOR_ELTS (init);
      TREE_CONSTANT (*valp) = TREE_CONSTANT (init);
      TREE_SIDE_EFFECTS (*valp) = TREE_SIDE_EFFECTS (init);
      CONSTRUCTOR_NO_CLEARING (*valp)
        = CONSTRUCTOR_NO_CLEARING (init);
    }
  else
    *valp = init;

where we do that if (!same_type_ignoring... check and early out only if *valp,
but in this case *valp is NULL and so we do the *valp = init; , except that
it is still empty class store with !lval.  While TREE_TYPE (*valp) can't be
checked obviously, type can.

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

* [Bug c++/100111] [10/11 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
                   ` (2 preceding siblings ...)
  2021-04-16  9:04 ` jakub at gcc dot gnu.org
@ 2021-04-16 10:16 ` jakub at gcc dot gnu.org
  2021-04-16 11:11 ` lh_mouse at 126 dot com
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-16 10:16 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 50613
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50613&action=edit
gcc11-pr100111.patch

This works for me on the testcase and passes make check-c++-all, but haven't
bootstrapped or fully regtested it yet.

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

* [Bug c++/100111] [10/11 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
                   ` (3 preceding siblings ...)
  2021-04-16 10:16 ` jakub at gcc dot gnu.org
@ 2021-04-16 11:11 ` lh_mouse at 126 dot com
  2021-04-16 14:01 ` lh_mouse at 126 dot com
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: lh_mouse at 126 dot com @ 2021-04-16 11:11 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Liu Hao <lh_mouse at 126 dot com> ---
Thanks for the patch. I am now starting bootstrapping GCC 10.3.1 on
`{i686,x86_64}-w64-mingw32`. Let me see how it goes.

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

* [Bug c++/100111] [10/11 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
                   ` (4 preceding siblings ...)
  2021-04-16 11:11 ` lh_mouse at 126 dot com
@ 2021-04-16 14:01 ` lh_mouse at 126 dot com
  2021-04-16 14:10 ` jason at gcc dot gnu.org
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: lh_mouse at 126 dot com @ 2021-04-16 14:01 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Liu Hao <lh_mouse at 126 dot com> ---
I have bootstrapped GCC 10.3.1 on `i686,x86_64}-w64-mingw32` successfully and
verified that this patch fixed the error.

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

* [Bug c++/100111] [10/11 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
                   ` (5 preceding siblings ...)
  2021-04-16 14:01 ` lh_mouse at 126 dot com
@ 2021-04-16 14:10 ` jason at gcc dot gnu.org
  2021-04-16 15:44 ` cvs-commit at gcc dot gnu.org
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jason at gcc dot gnu.org @ 2021-04-16 14:10 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #4)
> Created attachment 50613 [details]
> gcc11-pr100111.patch
> 
> This works for me on the testcase and passes make check-c++-all, but haven't
> bootstrapped or fully regtested it yet.

The patch is OK if testing passes.

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

* [Bug c++/100111] [10/11 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
                   ` (6 preceding siblings ...)
  2021-04-16 14:10 ` jason at gcc dot gnu.org
@ 2021-04-16 15:44 ` cvs-commit at gcc dot gnu.org
  2021-04-17  3:33 ` [Bug c++/100111] [10 " jason at gcc dot gnu.org
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-16 15:44 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:35e8b38a91d9fb49a4759649576f15e76c129d99

commit r11-8222-g35e8b38a91d9fb49a4759649576f15e76c129d99
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Apr 16 17:37:07 2021 +0200

    c++: Fix empty base stores in cxx_eval_store_expression [PR100111]

    In r11-6895 handling of empty bases has been fixed such that non-lval
    stores of empty classes are not added when the type of *valp doesn't
    match the type of the initializer, but as this testcase shows it is
    done only when *valp is non-NULL.  If it is NULL, we still shouldn't
    add empty class constructors if the type of the constructor elt *valp
    points to doesn't match.

    2021-04-16  Jakub Jelinek  <jakub@redhat.com>

            PR c++/100111
            * constexpr.c (cxx_eval_store_expression): Don't add CONSTRUCTORs
            for empty classes into *valp when types don't match even when *valp
            is NULL.

            * g++.dg/cpp0x/constexpr-100111.C: New test.

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

* [Bug c++/100111] [10 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
                   ` (7 preceding siblings ...)
  2021-04-16 15:44 ` cvs-commit at gcc dot gnu.org
@ 2021-04-17  3:33 ` jason at gcc dot gnu.org
  2021-04-20  9:46 ` cvs-commit at gcc dot gnu.org
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jason at gcc dot gnu.org @ 2021-04-17  3:33 UTC (permalink / raw)
  To: gcc-bugs

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

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
      Known to work|                            |11.0
            Summary|[10/11 Regression]          |[10 Regression]
                   |`-fno-elide-constructors`   |`-fno-elide-constructors`
                   |with `constexpr` ctors      |with `constexpr` ctors
                   |causes ICE in GCC 10.3      |causes ICE in GCC 10.3

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

* [Bug c++/100111] [10 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
                   ` (8 preceding siblings ...)
  2021-04-17  3:33 ` [Bug c++/100111] [10 " jason at gcc dot gnu.org
@ 2021-04-20  9:46 ` cvs-commit at gcc dot gnu.org
  2021-04-20  9:53 ` jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-20  9:46 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:31447dcaf15c37e5b9c42b2984f4c8b649fe9b74

commit r10-9730-g31447dcaf15c37e5b9c42b2984f4c8b649fe9b74
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Apr 16 17:37:07 2021 +0200

    c++: Fix empty base stores in cxx_eval_store_expression [PR100111]

    In r11-6895 handling of empty bases has been fixed such that non-lval
    stores of empty classes are not added when the type of *valp doesn't
    match the type of the initializer, but as this testcase shows it is
    done only when *valp is non-NULL.  If it is NULL, we still shouldn't
    add empty class constructors if the type of the constructor elt *valp
    points to doesn't match.

    2021-04-16  Jakub Jelinek  <jakub@redhat.com>

            PR c++/100111
            * constexpr.c (cxx_eval_store_expression): Don't add CONSTRUCTORs
            for empty classes into *valp when types don't match even when *valp
            is NULL.

            * g++.dg/cpp0x/constexpr-100111.C: New test.

    (cherry picked from commit 35e8b38a91d9fb49a4759649576f15e76c129d99)

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

* [Bug c++/100111] [10 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
                   ` (9 preceding siblings ...)
  2021-04-20  9:46 ` cvs-commit at gcc dot gnu.org
@ 2021-04-20  9:53 ` jakub at gcc dot gnu.org
  2022-04-13 14:18 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-20  9:53 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed for 10.4 too.

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

* [Bug c++/100111] [10 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
                   ` (10 preceding siblings ...)
  2021-04-20  9:53 ` jakub at gcc dot gnu.org
@ 2022-04-13 14:18 ` cvs-commit at gcc dot gnu.org
  2022-05-06 20:30 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-04-13 14:18 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jason Merrill <jason@gcc.gnu.org>:

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

commit r12-8144-gec03862f809e544a9b7d28067e51597dc92a0244
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Apr 12 17:46:59 2022 -0400

    c++: empty base constexpr -fno-elide-ctors [PR105245]

    The patch for 100111 extended our handling of empty base elision to the
case
    where the derived class has no other fields, but we still need to make sure
    that there's some initializer for the derived object.

            PR c++/105245
            PR c++/100111

    gcc/cp/ChangeLog:

            * constexpr.cc (cxx_eval_store_expression): Build a CONSTRUCTOR
            as needed in empty base handling.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp1y/constexpr-empty2.C: Add -fno-elide-constructors.

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

* [Bug c++/100111] [10 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
                   ` (11 preceding siblings ...)
  2022-04-13 14:18 ` cvs-commit at gcc dot gnu.org
@ 2022-05-06 20:30 ` cvs-commit at gcc dot gnu.org
  2022-05-12 20:13 ` cvs-commit at gcc dot gnu.org
  2022-05-12 21:15 ` cvs-commit at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-05-06 20:30 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jason Merrill <jason@gcc.gnu.org>:

https://gcc.gnu.org/g:967cdbe66296535fa496b88406a1125c8acaf6e2

commit r13-160-g967cdbe66296535fa496b88406a1125c8acaf6e2
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Apr 12 17:46:59 2022 -0400

    c++: empty base constexpr adjustment [PR105245]

    While looking at PR105245 in stage 4, I wanted to reorganize the code a
bit,
    but it seemed prudent to defer that to stage 1.

            PR c++/105245
            PR c++/100111

    gcc/cp/ChangeLog:

            * constexpr.cc (cxx_eval_store_expression): Reorganize empty base
            handling.

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

* [Bug c++/100111] [10 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
                   ` (12 preceding siblings ...)
  2022-05-06 20:30 ` cvs-commit at gcc dot gnu.org
@ 2022-05-12 20:13 ` cvs-commit at gcc dot gnu.org
  2022-05-12 21:15 ` cvs-commit at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-05-12 20:13 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #13 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Jason Merrill
<jason@gcc.gnu.org>:

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

commit r11-9984-gfe81f5bd3c3e764d1355eda3e44e37cec99cd23c
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Apr 12 17:46:59 2022 -0400

    c++: empty base constexpr -fno-elide-ctors [PR105245]

    The patch for 100111 extended our handling of empty base elision to the
case
    where the derived class has no other fields, but we still need to make sure
    that there's some initializer for the derived object.

            PR c++/105245
            PR c++/100111

    gcc/cp/ChangeLog:

            * constexpr.c (cxx_eval_store_expression): Build a CONSTRUCTOR
            as needed in empty base handling.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp1y/constexpr-empty2.C: Add -fno-elide-constructors.

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

* [Bug c++/100111] [10 Regression] `-fno-elide-constructors` with `constexpr` ctors causes ICE in GCC 10.3
  2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
                   ` (13 preceding siblings ...)
  2022-05-12 20:13 ` cvs-commit at gcc dot gnu.org
@ 2022-05-12 21:15 ` cvs-commit at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-05-12 21:15 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #14 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jason Merrill
<jason@gcc.gnu.org>:

https://gcc.gnu.org/g:6c7905a9f10d28dfd27ddf21d3bf38a3e261ee10

commit r10-10722-g6c7905a9f10d28dfd27ddf21d3bf38a3e261ee10
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Apr 12 17:46:59 2022 -0400

    c++: empty base constexpr -fno-elide-ctors [PR105245]

    The patch for 100111 extended our handling of empty base elision to the
case
    where the derived class has no other fields, but we still need to make sure
    that there's some initializer for the derived object.

            PR c++/105245
            PR c++/100111

    gcc/cp/ChangeLog:

            * constexpr.c (cxx_eval_store_expression): Build a CONSTRUCTOR
            as needed in empty base handling.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp1y/constexpr-empty2.C: Add -fno-elide-constructors.

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

end of thread, other threads:[~2022-05-12 21:15 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-16  5:37 [Bug c++/100111] New: `-fno-elide-constructors` causes ICE in GCC 10.3 lh_mouse at 126 dot com
2021-04-16  7:36 ` [Bug c++/100111] [10/11 Regression] `-fno-elide-constructors` with `constexpr` ctors " rguenth at gcc dot gnu.org
2021-04-16  8:14 ` jakub at gcc dot gnu.org
2021-04-16  9:04 ` jakub at gcc dot gnu.org
2021-04-16 10:16 ` jakub at gcc dot gnu.org
2021-04-16 11:11 ` lh_mouse at 126 dot com
2021-04-16 14:01 ` lh_mouse at 126 dot com
2021-04-16 14:10 ` jason at gcc dot gnu.org
2021-04-16 15:44 ` cvs-commit at gcc dot gnu.org
2021-04-17  3:33 ` [Bug c++/100111] [10 " jason at gcc dot gnu.org
2021-04-20  9:46 ` cvs-commit at gcc dot gnu.org
2021-04-20  9:53 ` jakub at gcc dot gnu.org
2022-04-13 14:18 ` cvs-commit at gcc dot gnu.org
2022-05-06 20:30 ` cvs-commit at gcc dot gnu.org
2022-05-12 20:13 ` cvs-commit at gcc dot gnu.org
2022-05-12 21:15 ` cvs-commit at gcc dot gnu.org

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).