c++/10511: tt.cpp:61: Internal compiler error in decay_conversion, at cp/typeck.c:1679

gianni@mariani.ws gianni@mariani.ws
Sun Apr 27 15:36:00 GMT 2003


>Number:         10511
>Category:       c++
>Synopsis:       tt.cpp:61: Internal compiler error in decay_conversion, at cp/typeck.c:1679
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Apr 27 04:56:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     gianni@mariani.ws
>Release:        gcc (GCC) 3.2.1
>Organization:
>Environment:
Linux RH 7.2

Configured with: /home/gianni/downloads/gcc/gcc-3.2.1/configure --enable-threads=posix --enable-shared --prefix=/home/gianni/downloads/gcc/gcc-3.2.1-install
Thread model: posix
gcc version 3.2.1
>Description:

compiler says it has an error.  It seems like a parser error.  Complete code below the error output.

g++     tt.cpp   -o tt
tt.cpp: In member function `void Zoo::B::Fooey(Zoo::A*)':
tt.cpp:61: Internal compiler error in decay_conversion, at cp/typeck.c:1679
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
make: *** [tt] Error 1

class Zoo
{

public:

        class B;

        class A
        {

                public:


                A                       * m_mem1;
                A                       * m_mem2;
                A                       * m_mem3;

                template <
                        A * A::*        w_aa,
                        A * A::*        w_ab,
                        A * A::*        w_ac,
                        A * B::*        w_ba,
                        A * B::*        w_bb,
                        A * B::*        w_bc
                >
                void TFUNC_A( A * i_1 )
                {
                        i_1->w_ac = i_1;
                }

        };

        class B
        {

                public:

                A                       * m_b1;
                A                       * m_b2;
                A                       * m_b3;

                template <
                        A * A::*        w_aa,
                        A * A::*        w_ab,
                        A * A::*        w_ac,
                        A * B::*        w_ba,
                        A * B::*        w_bb,
                        A * B::*        w_bc
                >
                void TFUNC_B( A * i_1 )
                {
                        i_1->TFUNC_A<w_aa,w_ab,w_ac,w_ba,w_bb,w_bc>( m_b1 );
                }

                typedef void ( B::* ff )( A * i_1 );

                void Fooey( A * i_1 )
                {
                        ff      gg = TFUNC_B< (&A::m_mem1),(&A::m_mem2),(&A::m_mem3),(&::Zoo::B::m_b1),(&::Zoo::B::m_b2),(&::Zoo::B::m_b3) >;

                        this->TFUNC_B< (&A::m_mem1),(&A::m_mem2),(&A::m_mem3),(&B::m_b1),(&B::m_b2),(&B::m_b3) >( i_1 );
                }

        };


};


int main()
{
        Zoo::A          a[1];
        Zoo::B          b[1];

        b->Fooey( a );
}



>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-bugs mailing list