public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/105622] New: ICE in cxx_eval_store_expression with [[no_unique_address]] and empty data members
@ 2022-05-16 19:06 ppalka at gcc dot gnu.org
  2022-05-16 19:08 ` [Bug c++/105622] [13 Regression] ICE in cxx_eval_store_expression with [[no_unique_address]] and empty data members since r13-160-g967cdbe6629653 ppalka at gcc dot gnu.org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: ppalka at gcc dot gnu.org @ 2022-05-16 19:06 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 105622
           Summary: ICE in cxx_eval_store_expression with
                    [[no_unique_address]] and empty data members
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ppalka at gcc dot gnu.org
  Target Milestone: ---

struct empty {
  empty() = default;
  constexpr empty(int) { }
};

struct container {
  empty __begin_ = {};
  [[no_unique_address]] empty __size_ = 0;
};

constexpr bool test() {
  container s;
  return true;
}
static_assert(test());


testcase.ii: In function ‘constexpr bool test()’:
testcase.ii:12:13:   in ‘constexpr’ expansion of ‘s.container::container()’
testcase.ii:12:13: internal compiler error: in cxx_eval_store_expression, at
cp/constexpr.cc:5927
   12 |   container s;
      |             ^
0x6a0ca0 cxx_eval_store_expression
        /home/patrick/gcc/gcc/cp/constexpr.cc:5927
0x96c254 cxx_eval_constant_expression
        /home/patrick/gcc/gcc/cp/constexpr.cc:6847
0x96c4d6 cxx_eval_constant_expression
        /home/patrick/gcc/gcc/cp/constexpr.cc:7236
0x96c717 cxx_eval_constant_expression
        /home/patrick/gcc/gcc/cp/constexpr.cc:7048

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

* [Bug c++/105622] [13 Regression] ICE in cxx_eval_store_expression with [[no_unique_address]] and empty data members since r13-160-g967cdbe6629653
  2022-05-16 19:06 [Bug c++/105622] New: ICE in cxx_eval_store_expression with [[no_unique_address]] and empty data members ppalka at gcc dot gnu.org
@ 2022-05-16 19:08 ` ppalka at gcc dot gnu.org
  2022-05-17  6:58 ` [Bug c++/105622] [13 Regression] ICE in cxx_eval_store_expression with [[no_unique_address]] " rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: ppalka at gcc dot gnu.org @ 2022-05-16 19:08 UTC (permalink / raw)
  To: gcc-bugs

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

Patrick Palka <ppalka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |13.0
                 CC|                            |jason at gcc dot gnu.org
      Known to work|                            |12.1.0
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |ice-on-valid-code
     Ever confirmed|0                           |1
            Summary|ICE in                      |[13 Regression] ICE in
                   |cxx_eval_store_expression   |cxx_eval_store_expression
                   |with [[no_unique_address]]  |with [[no_unique_address]]
                   |and empty data members      |and empty data members
                   |                            |since
                   |                            |r13-160-g967cdbe6629653
   Target Milestone|---                         |13.0
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=105245
   Last reconfirmed|                            |2022-05-16

--- Comment #1 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Started with r13-160-g967cdbe6629653.

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

* [Bug c++/105622] [13 Regression] ICE in cxx_eval_store_expression with [[no_unique_address]] since r13-160-g967cdbe6629653
  2022-05-16 19:06 [Bug c++/105622] New: ICE in cxx_eval_store_expression with [[no_unique_address]] and empty data members ppalka at gcc dot gnu.org
  2022-05-16 19:08 ` [Bug c++/105622] [13 Regression] ICE in cxx_eval_store_expression with [[no_unique_address]] and empty data members since r13-160-g967cdbe6629653 ppalka at gcc dot gnu.org
@ 2022-05-17  6:58 ` rguenth at gcc dot gnu.org
  2022-05-17 22:16 ` jason at gcc dot gnu.org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-05-17  6:58 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1

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

* [Bug c++/105622] [13 Regression] ICE in cxx_eval_store_expression with [[no_unique_address]] since r13-160-g967cdbe6629653
  2022-05-16 19:06 [Bug c++/105622] New: ICE in cxx_eval_store_expression with [[no_unique_address]] and empty data members ppalka at gcc dot gnu.org
  2022-05-16 19:08 ` [Bug c++/105622] [13 Regression] ICE in cxx_eval_store_expression with [[no_unique_address]] and empty data members since r13-160-g967cdbe6629653 ppalka at gcc dot gnu.org
  2022-05-17  6:58 ` [Bug c++/105622] [13 Regression] ICE in cxx_eval_store_expression with [[no_unique_address]] " rguenth at gcc dot gnu.org
@ 2022-05-17 22:16 ` jason at gcc dot gnu.org
  2022-05-24 19:50 ` cvs-commit at gcc dot gnu.org
  2022-05-24 20:07 ` jason at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: jason at gcc dot gnu.org @ 2022-05-17 22:16 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |jason at gcc dot gnu.org
             Status|NEW                         |ASSIGNED

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

* [Bug c++/105622] [13 Regression] ICE in cxx_eval_store_expression with [[no_unique_address]] since r13-160-g967cdbe6629653
  2022-05-16 19:06 [Bug c++/105622] New: ICE in cxx_eval_store_expression with [[no_unique_address]] and empty data members ppalka at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2022-05-17 22:16 ` jason at gcc dot gnu.org
@ 2022-05-24 19:50 ` cvs-commit at gcc dot gnu.org
  2022-05-24 20:07 ` jason at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-05-24 19:50 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 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:2540e2c604142889308857657d3510874955336a

commit r13-746-g2540e2c604142889308857657d3510874955336a
Author: Jason Merrill <jason@redhat.com>
Date:   Fri May 20 16:16:25 2022 -0400

    c++: constexpr empty base redux [PR105622]

    Here calling the constructor for s.__size_ had ctx->ctor for s itself
    because cxx_eval_store_expression doesn't create a ctor for the empty
field.
    Then cxx_eval_call_expression returned the s initializer, and my empty base
    overhaul in r13-160 got confused because the type of init is not an empty
    class.  But that's OK, we should be checking the type of the original LHS
    instead.  We also want to use initialized_type in the condition, in case
    init is an AGGR_INIT_EXPR.

    I spent quite a while working on more complex solutions before coming back
    to this simple one.

            PR c++/105622

    gcc/cp/ChangeLog:

            * constexpr.cc (cxx_eval_store_expression): Adjust assert.
            Use initialized_type.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp2a/no_unique_address14.C: New test.

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

* [Bug c++/105622] [13 Regression] ICE in cxx_eval_store_expression with [[no_unique_address]] since r13-160-g967cdbe6629653
  2022-05-16 19:06 [Bug c++/105622] New: ICE in cxx_eval_store_expression with [[no_unique_address]] and empty data members ppalka at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2022-05-24 19:50 ` cvs-commit at gcc dot gnu.org
@ 2022-05-24 20:07 ` jason at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: jason at gcc dot gnu.org @ 2022-05-24 20:07 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

--- Comment #3 from Jason Merrill <jason at gcc dot gnu.org> ---
Fixed.

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

end of thread, other threads:[~2022-05-24 20:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-16 19:06 [Bug c++/105622] New: ICE in cxx_eval_store_expression with [[no_unique_address]] and empty data members ppalka at gcc dot gnu.org
2022-05-16 19:08 ` [Bug c++/105622] [13 Regression] ICE in cxx_eval_store_expression with [[no_unique_address]] and empty data members since r13-160-g967cdbe6629653 ppalka at gcc dot gnu.org
2022-05-17  6:58 ` [Bug c++/105622] [13 Regression] ICE in cxx_eval_store_expression with [[no_unique_address]] " rguenth at gcc dot gnu.org
2022-05-17 22:16 ` jason at gcc dot gnu.org
2022-05-24 19:50 ` cvs-commit at gcc dot gnu.org
2022-05-24 20:07 ` jason 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).