This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug lto/54980] New: [4.8 regression] gimple check: expected gimple_cond(error_mark), have gimple_call() in gimple_cond_set_lhs, at gimple.h:2578


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

             Bug #: 54980
           Summary: [4.8 regression] gimple check: expected
                    gimple_cond(error_mark), have gimple_call() in
                    gimple_cond_set_lhs, at gimple.h:2578
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: lto
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: dimhen@gmail.com


$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/gcc_current/libexec/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /home/dimhen/src/gcc-current/configure
--prefix=/usr/local/gcc_current --enable-__cxa_atexit --enable-shared
--enable-checking=yes,df,fold,rtl,tree --enable-gnu-unique-object
--enable-linker-build-id --enable-languages=c,c++,lto --enable-plugin
--enable-version-specific-runtime-libs --with-tune=generic
Thread model: posix
gcc version 4.8.0 20121018 (experimental) [trunk revision 192560] (GCC) 

$ g++ -flto -fpreprocessed -c 1.ii -o 1.o
$ g++ -flto -O1 -fpreprocessed -c 2.ii -o 2.o
$ g++ -Ofast -flto -o t 1.o 2.o
In file included from :0:0:
1.ii: In member function âparseâ:
1.ii:8:17: internal compiler error: gimple check: expected
gimple_cond(error_mark), have gimple_call() in gimple_cond_set_lhs, at
gimple.h:2578
     virtual int parse ()
                 ^
0x6af233 gimple_check_failed(gimple_statement_d const*, char const*, int, char
const*, gimple_code, tree_code)
    /home/dimhen/src/gcc-current/gcc/gimple.c:1160
0x104ec27 gimple_cond_set_lhs
    /home/dimhen/src/gcc-current/gcc/gimple.h:2578
0x104e309 gimple_cond_set_lhs
    /home/dimhen/src/gcc-current/gcc/tree-ssa-loop-ivcanon.c:533
0x104e309 gimple_cond_make_true
    /home/dimhen/src/gcc-current/gcc/gimple.h:2674
0x104e309 try_unroll_loop_completely
    /home/dimhen/src/gcc-current/gcc/tree-ssa-loop-ivcanon.c:548
0x104e309 canonicalize_loop_induction_variables
    /home/dimhen/src/gcc-current/gcc/tree-ssa-loop-ivcanon.c:666
0x104e737 tree_unroll_loops_completely(bool, bool)
    /home/dimhen/src/gcc-current/gcc/tree-ssa-loop-ivcanon.c:815
0x98ee31 tree_complete_unroll_inner
    /home/dimhen/src/gcc-current/gcc/tree-ssa-loop.c:495
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
lto-wrapper: g++ returned 1 exit status
/usr/bin/ld: fatal error: lto-wrapper failed
collect2: error: ld returned 1 exit status

$ cat 1.ii
extern "C" class A
{
};
template < class T_gengetopt_args_info, int (*t_parser) (int, char **,
        T_gengetopt_args_info
        *) >class B
{
    virtual int parse ()
    {
        A a;
        t_parser (0, 0, 0);
    }
};

extern "C" int f (int, char **, int *);
class C:B < int, f >
{
};
void
selectCommandHandler ()
{
    new C;
}

$ cat 2.ii
extern "C"
{
    void printf (const char *...);
    int f ();
}
const char *a[] = { "", 0 };

int b;
void f_internal ();
int
f ()
{
    f_internal ();
}

void
f_internal ()
{
    while (1)
        switch (b)
        case 'h':
{
    int i;
    while (a[0])
        printf (a[i++]);
    }
}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]