public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/51723] New: [C++0x] delegating constructor ICE
@ 2011-12-31 22:51 andyg1001 at hotmail dot co.uk
  2012-01-01  0:01 ` [Bug c++/51723] " paolo.carlini at oracle dot com
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: andyg1001 at hotmail dot co.uk @ 2011-12-31 22:51 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 51723
           Summary: [C++0x] delegating constructor ICE
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: andyg1001@hotmail.co.uk


The following reduced code generates an ICE in gcc version 4.7.0 20111219:

template <int... V>
struct A
  {
  static constexpr int a[sizeof...(V)] = { V... };
  };

template <int... V> constexpr int A<V...>::a[];

struct B
  {
  const int* const b;

  template <unsigned int N>
  constexpr B(const int(&b)[N])
      : b(b)
    { }

  template <int... V>
  constexpr B(A<V...>)
      : B(A<V...>::a)  /* replace 'B' with 'b' to compile without ICE */
    { }
  };

constexpr B works      = A<10, 20, 30>::a; /* uses first ctor  */
constexpr B causes_ice = A<10, 20, 30>();  /* uses second ctor */

The ICE occurs around the delegating constructor, but the code compiles
correctly if it is substituted for a non-delegating form of the constructor.

The message from gcc is:

ice.cpp: In instantiation of 'constexpr B::B(A<V ...>) [with int ...V = {10,
20, 30}]':
ice.cpp:25:40:   required from here
ice.cpp:21:7: internal compiler error: in build_data_member_initialization, at
cp/semantics.c:5844
Please submit a full bug report,
with preprocessed source if appropriate.


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

end of thread, other threads:[~2012-01-01 18:30 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-31 22:51 [Bug c++/51723] New: [C++0x] delegating constructor ICE andyg1001 at hotmail dot co.uk
2012-01-01  0:01 ` [Bug c++/51723] " paolo.carlini at oracle dot com
2012-01-01 13:06 ` andyg1001 at hotmail dot co.uk
2012-01-01 13:10 ` paolo.carlini at oracle dot com
2012-01-01 13:32 ` paolo at gcc dot gnu.org
2012-01-01 13:34 ` paolo.carlini at oracle dot com
2012-01-01 15:26 ` andyg1001 at hotmail dot co.uk
2012-01-01 18:30 ` 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).