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 optimization/12215] New: [3.3.1 regression] ICE in make_label_edge with -fnon-call-exceptions -fno-gcse -O2


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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

           Summary: [3.3.1 regression] ICE in make_label_edge with -fnon-
                    call-exceptions -fno-gcse -O2
           Product: gcc
           Version: 3.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: nick at ilm dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu

The following code triggers an ICE in the 3.3.1 release:

/dept/rnd/vendor/gcc-3.3.1-notpatched/bin/g++ -E gcc331_ie.C > gcc331_ie.ii
/dept/rnd/vendor/gcc-3.3.1-notpatched/bin/g++ -fnon-call-exceptions -fno-gcse
-O2  gcc331_ie.ii -o gcc331_ie
gcc331_ie.C: In function `int main(int, const char**)':
gcc331_ie.C:39: internal compiler error: in make_label_edge, at cfgbuild.c:238
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

---------
#include <string>

void getArg( int &i, int argc, const char **argv, float &arg0 )
{
    if ( i < argc )
    {
        arg0 = atof( argv[i++] );
    }
}

int main (int argc, const char **argv)
{
    float               val = 0.0;
    int                 i = 1;

    //
    // Parse the arguments
    //
    try {
        while ( i < argc )
        {
            std::string arg( argv[i++]);

            if ( arg == "-" )
            {
                int e=0;
                throw( e );
            }
            else if ( arg == "-op" )
            {
                getArg( i, argc, argv, val );
            }
        }
    } catch (...) {

    }

    return 0;
}
-----

It compiles with 3.2.3.  It also compiles if gcse is enabled, but
bug 11646 is keeping us from doing that with the rest of the code :/

-nick


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