public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/16905] New: ICE (segfault) while compiling with -funit-at-a-time
@ 2004-08-06 21:02 rjpeters at klab dot caltech dot edu
  2004-08-06 21:06 ` [Bug c++/16905] " rjpeters at klab dot caltech dot edu
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: rjpeters at klab dot caltech dot edu @ 2004-08-06 21:02 UTC (permalink / raw)
  To: gcc-bugs

Got an ICE while compiling the following:

/****** begin code ******/
#include <new> /* for placement new */

/* don't need definitions of these to trigger the segfault*/
extern int dummy_int;
extern bool dummy_bool;

/* don't need definitions of this functions to trigger the segfault */
int* dummy_get_int_ptr();

struct Data
{
  Data()
  {
    if (dummy_bool)
      {
        int* buf = dummy_get_int_ptr();

        try
          {
            int* cur = buf + 1;
            while (cur > buf)
              new (--cur) int;
          }
        catch (...)
          {
            while (true) /* nothing */ ;
          }
      }

    dummy_int = 0;
  }
};

struct Guard
{
  ~Guard()
  {
    while (true) /* nothing */ ;
  }
};

/* this variable has to be declared at file-scope, not at function-scope
   inside crash(), in order to trigger the segfault */
Data* px = 0;

/* we DO need a defintion of this function (albeit empty) to trigger the
   segfault -- also need the throw-spec -- also needs to be declared
   'inline' */
inline void do_nothing_nothrow() throw()
{}

void crash()
{
  px = new Data;
  Guard g;
  do_nothing_nothrow();
}
/******** end code ********/

Here's the result of running g++ 3.4.1:

/usr/local/gcc-3.4.1/bin/g++-3.4.1 -v -c fail.C -O1 -funit-at-a-time
Reading specs from
/local/usr-local/gcc-3.4.1/bin/../lib/gcc/i686-pc-linux-gnu/3.4.1/specs
Configured with: /home/rjpeters/build/gcc-3.4.1/configure
--prefix=/usr/local/gcc-3.4.1 --program-suffix=-3.4.1 --enable-shared
--enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit
Thread model: posix
gcc version 3.4.1
 /local/usr-local/gcc-3.4.1/bin/../libexec/gcc/i686-pc-linux-gnu/3.4.1/cc1plus
-quiet -v -iprefix
/local/usr-local/gcc-3.4.1/bin/../lib/gcc/i686-pc-linux-gnu/3.4.1/ -D_GNU_SOURCE
fail.C -quiet -dumpbase fail.C -mtune=pentiumpro -auxbase fail -O1 -version
-funit-at-a-time -o /tmp/ccbsTsAR.s
ignoring nonexistent directory
"/local/usr-local/gcc-3.4.1/bin/../lib/gcc/i686-pc-linux-gnu/3.4.1/../../../../i686-pc-linux-gnu/include"
ignoring duplicate directory
"/usr/local/gcc-3.4.1/lib/gcc/i686-pc-linux-gnu/3.4.1/../../../../include/c++/3.4.1"
ignoring duplicate directory
"/usr/local/gcc-3.4.1/lib/gcc/i686-pc-linux-gnu/3.4.1/../../../../include/c++/3.4.1/i686-pc-linux-gnu"
ignoring duplicate directory
"/usr/local/gcc-3.4.1/lib/gcc/i686-pc-linux-gnu/3.4.1/../../../../include/c++/3.4.1/backward"
ignoring duplicate directory
"/usr/local/gcc-3.4.1/lib/gcc/i686-pc-linux-gnu/3.4.1/include"
ignoring nonexistent directory
"/usr/local/gcc-3.4.1/lib/gcc/i686-pc-linux-gnu/3.4.1/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /local/usr-local/gcc-3.4.1/bin/../lib/gcc/i686-pc-linux-gnu/3.4.1/../../../../include/c++/3.4.1
 /local/usr-local/gcc-3.4.1/bin/../lib/gcc/i686-pc-linux-gnu/3.4.1/../../../../include/c++/3.4.1/i686-pc-linux-gnu
 /local/usr-local/gcc-3.4.1/bin/../lib/gcc/i686-pc-linux-gnu/3.4.1/../../../../include/c++/3.4.1/backward
 /local/usr-local/gcc-3.4.1/bin/../lib/gcc/i686-pc-linux-gnu/3.4.1/include
 /usr/local/include
 /usr/local/gcc-3.4.1/include
 /usr/include
End of search list.
GNU C++ version 3.4.1 (i686-pc-linux-gnu)
        compiled by GNU C version 3.4.1.
GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64322
fail.C: In function `void crash()':
fail.C:57: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.


I spent some time whittling down the test case to what I've presented here...
seems that each of the remaining lines is required to manifest the segfault,
including the various pieces of do-nothing code (e.g. "while (true)
/*nothing*/;" and "dummy_int = 0").

Compiles without problem using 3.3.x, presumably because there's no
-funit-at-a-time option there:

/usr/bin/g++ -v -c fail.C -O1
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux
Thread model: posix
gcc version 3.3.2 20031022 (Red Hat Linux 3.3.2-1)
 /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/cc1plus -quiet -v -D__GNUC__=3
-D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=2 -D_GNU_SOURCE fail.C -D__GNUG__=3
-quiet -dumpbase fail.C -auxbase fail -O1 -version -o /tmp/ccc6nw5C.s
GNU C++ version 3.3.2 20031022 (Red Hat Linux 3.3.2-1) (i386-redhat-linux)
        compiled by GNU C version 3.3.2 20031022 (Red Hat Linux 3.3.2-1).
GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64322
ignoring nonexistent directory "/usr/i386-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/3.3.2
 /usr/include/c++/3.3.2/i386-redhat-linux
 /usr/include/c++/3.3.2/backward
 /usr/local/include
 /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/include
 /usr/include
End of search list.
 as -V -Qy -o fail.o /tmp/ccc6nw5C.s
GNU assembler version 2.14.90.0.6 (i386-redhat-linux) using BFD version
2.14.90.0.6 20030820


Seems to compile without problem using an old snapshot of 3.5:

/usr/bin/g++-ssa -I/usr/include/c++/3.5-tree-ssa -v -c fail.C -O1 -funit-at-a-time
Reading specs from /lib/ssa/gcc/i686-redhat-linux/3.5-tree-ssa/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --libdir=/lib/ssa --libexecdir=/lib/ssa
--host=i686-redhat-linux --enable-shared --enable-threads=posix
--disable-checking --enable-languages=c,c++,java,objc,f95 --with-system-zlib
--enable-__cxa_atexit --disable-multilib
Thread model: posix
gcc version 3.5-tree-ssa 20040122 (Fedora Core Rawhide 3.5ssa-snapshot)
 /lib/ssa/gcc/i686-redhat-linux/3.5-tree-ssa/cc1plus -quiet -v
-I/usr/include/c++/3.5-tree-ssa -D_GNU_SOURCE fail.C -quiet -dumpbase fail.C
-mtune=pentiumpro -auxbase fail -O1 -version -funit-at-a-time -o /tmp/cc2WuBtS.s
ignoring nonexistent directory
"/lib/ssa/gcc/i686-redhat-linux/3.5-tree-ssa/../../../../include/c++/3.5-tree-ssa"
ignoring nonexistent directory
"/lib/ssa/gcc/i686-redhat-linux/3.5-tree-ssa/../../../../include/c++/3.5-tree-ssa/i686-redhat-linux"
ignoring nonexistent directory
"/lib/ssa/gcc/i686-redhat-linux/3.5-tree-ssa/../../../../include/c++/3.5-tree-ssa/backward"
ignoring nonexistent directory
"/lib/ssa/gcc/i686-redhat-linux/3.5-tree-ssa/../../../../i686-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/3.5-tree-ssa
 /usr/local/include
 /lib/ssa/gcc/i686-redhat-linux/3.5-tree-ssa/include
 /usr/include
End of search list.
GNU C++ version 3.5-tree-ssa 20040122 (Fedora Core Rawhide 3.5ssa-snapshot)
(i686-redhat-linux)
        compiled by GNU C version 3.2.3 20030502 (Red Hat Linux 3.2.3-20).
GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64322
 as -V -Qy -o fail.o /tmp/cc2WuBtS.s
GNU assembler version 2.14.90.0.6 (i386-redhat-linux) using BFD version
2.14.90.0.6 20030820


Thanks,
Rob Peters

-- 
           Summary: ICE (segfault) while compiling with -funit-at-a-time
           Product: gcc
           Version: 3.4.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rjpeters at klab dot caltech dot edu
                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


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


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

* [Bug c++/16905] ICE (segfault) while compiling with -funit-at-a-time
  2004-08-06 21:02 [Bug c++/16905] New: ICE (segfault) while compiling with -funit-at-a-time rjpeters at klab dot caltech dot edu
  2004-08-06 21:06 ` [Bug c++/16905] " rjpeters at klab dot caltech dot edu
@ 2004-08-06 21:06 ` rjpeters at klab dot caltech dot edu
  2004-08-06 22:38 ` rjpeters at klab dot caltech dot edu
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: rjpeters at klab dot caltech dot edu @ 2004-08-06 21:06 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Attachment #6897|text/plain                  |text/x-c++
          mime type|                            |


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


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

* [Bug c++/16905] ICE (segfault) while compiling with -funit-at-a-time
  2004-08-06 21:02 [Bug c++/16905] New: ICE (segfault) while compiling with -funit-at-a-time rjpeters at klab dot caltech dot edu
@ 2004-08-06 21:06 ` rjpeters at klab dot caltech dot edu
  2004-08-06 21:06 ` rjpeters at klab dot caltech dot edu
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: rjpeters at klab dot caltech dot edu @ 2004-08-06 21:06 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rjpeters at klab dot caltech dot edu  2004-08-06 21:06 -------
Created an attachment (id=6897)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=6897&action=view)
triggers ICE when compiled with g++-3.4.1 -O1 -funit-at-a-time


-- 


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


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

* [Bug c++/16905] ICE (segfault) while compiling with -funit-at-a-time
  2004-08-06 21:02 [Bug c++/16905] New: ICE (segfault) while compiling with -funit-at-a-time rjpeters at klab dot caltech dot edu
  2004-08-06 21:06 ` [Bug c++/16905] " rjpeters at klab dot caltech dot edu
  2004-08-06 21:06 ` rjpeters at klab dot caltech dot edu
@ 2004-08-06 22:38 ` rjpeters at klab dot caltech dot edu
  2004-08-06 23:23 ` [Bug c++/16905] [3.4 regression] ICE (segfault) with exceptions reichelt at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: rjpeters at klab dot caltech dot edu @ 2004-08-06 22:38 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rjpeters at klab dot caltech dot edu  2004-08-06 22:37 -------
Still get the ICE with the gcc-3.4-20040730 snapshot:

~/local/gcc-3.4-20040730/bin/g++-3.4-20040730 -v -c fail.C -O1 -funit-at-a-time

Reading specs from
/home/rjpeters/local/gcc-3.4-20040730/lib/gcc/i686-pc-linux-gnu/3.4.2/specs
Configured with: /home/rjpeters/build/gcc-3.4-20040730/configure
--prefix=/home/rjpeters/local/gcc-3.4-20040730 --program-suffix=-3.4-20040730
--enable-shared --enable-threads=posix --enable-checking --with-system-zlib
--enable-__cxa_atexit --enable-languages=c,c++
Thread model: posix
gcc version 3.4.2 20040730 (prerelease)
 /home/rjpeters/local/gcc-3.4-20040730/libexec/gcc/i686-pc-linux-gnu/3.4.2/cc1plus
-quiet -v -D_GNU_SOURCE fail.C -quiet -dumpbase fail.C -mtune=pentiumpro
-auxbase fail -O1 -version -funit-at-a-time -o /tmp/cc3o4bhc.s
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory
"/home/rjpeters/local/gcc-3.4-20040730/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/rjpeters/local/gcc-3.4-20040730/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../include/c++/3.4.2
 /home/rjpeters/local/gcc-3.4-20040730/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../include/c++/3.4.2/i686-pc-linux-gnu
 /home/rjpeters/local/gcc-3.4-20040730/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../include/c++/3.4.2/backward
 /home/rjpeters/local/gcc-3.4-20040730/include
 /home/rjpeters/local/gcc-3.4-20040730/lib/gcc/i686-pc-linux-gnu/3.4.2/include
 /usr/include
End of search list.
GNU C++ version 3.4.2 20040730 (prerelease) (i686-pc-linux-gnu)
        compiled by GNU C version 3.4.2 20040730 (prerelease).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
fail.C: In function `void crash()':
fail.C:57: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.


And here's a backtrace from the gcc-3.4-20040730 snapshot:

gdb ~/local/gcc-3.4-20040730/libexec/gcc/i686-pc-linux-gnu/3.4.2/cc1plus

GNU gdb Red Hat Linux (6.0post-0.20040223.19rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db
library "/lib/tls/libthread_db.so.1".
 
(gdb) run -quiet -v -D_GNU_SOURCE fail.C -quiet -dumpbase fail.C
-mtune=pentiumpro -auxbase fail -O1 -version -funit-at-a-time -o /tmp/ccRi6UqC.s
Starting program:
/home/rjpeters/local/gcc-3.4-20040730/libexec/gcc/i686-pc-linux-gnu/3.4.2/cc1plus
-quiet -v -D_GNU_SOURCE fail.C -quiet -dumpbase fail.C -mtune=pentiumpro
-auxbase fail -O1 -version -funit-at-a-time -o /tmp/ccRi6UqC.s
Error while mapping shared library sections:
: Success.
Error while reading shared library symbols:
: No such file or directory.
Error while reading shared library symbols:
: No such file or directory.
Error while reading shared library symbols:
: No such file or directory.
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory
"/home/rjpeters/local/gcc-3.4-20040730/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/rjpeters/local/gcc-3.4-20040730/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../include/c++/3.4.2
 /home/rjpeters/local/gcc-3.4-20040730/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../include/c++/3.4.2/i686-pc-linux-gnu
 /home/rjpeters/local/gcc-3.4-20040730/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../include/c++/3.4.2/backward
 /home/rjpeters/local/gcc-3.4-20040730/include
 /home/rjpeters/local/gcc-3.4-20040730/lib/gcc/i686-pc-linux-gnu/3.4.2/include
 /usr/include
End of search list.
GNU C++ version 3.4.2 20040730 (prerelease) (i686-pc-linux-gnu)
        compiled by GNU C version 3.4.2 20040730 (prerelease).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
 
Program received signal SIGSEGV, Segmentation fault.
loop_optimize (f=0xf6e697c0, dumpfile=0xffffffa3, flags=10)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/loop.c:2774
2774                current_loop->vtop = insn;
(gdb) bt
#0  loop_optimize (f=0xf6e697c0, dumpfile=0xffffffa3, flags=10)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/loop.c:2774
#1  0x083a12ee in rest_of_handle_loop_optimize (decl=0x0, insns=0xf6e697c0)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/toplev.c:3051
#2  0x083a18be in rest_of_compilation (decl=0xf6d6d0d8)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/toplev.c:3329
#3  0x083eecfb in tree_rest_of_compilation (fndecl=0xf6d6d0d8, nested_p=false)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/tree-optimize.c:168
#4  0x08128744 in expand_body (fn=0xf6d6d0d8)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cp/semantics.c:2932
#5  0x083f0b39 in cgraph_expand_function (node=0xf6d6d6c0)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cgraphunit.c:538
#6  0x083f2779 in cgraph_optimize ()
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cgraphunit.c:1542
#7  0x080d703b in finish_file ()
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cp/decl2.c:2850
#8  0x083a3edd in toplev_main (argc=4294967203, argv=0xfefad7bc)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/toplev.c:1822
#9  0x0817cf6e in main (argc=-93, argv=0xffffffa3)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/main.c:35


-- 


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


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

* [Bug c++/16905] [3.4 regression] ICE (segfault) with exceptions
  2004-08-06 21:02 [Bug c++/16905] New: ICE (segfault) while compiling with -funit-at-a-time rjpeters at klab dot caltech dot edu
                   ` (2 preceding siblings ...)
  2004-08-06 22:38 ` rjpeters at klab dot caltech dot edu
@ 2004-08-06 23:23 ` reichelt at gcc dot gnu dot org
  2004-08-06 23:42 ` rjpeters at klab dot caltech dot edu
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2004-08-06 23:23 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From reichelt at gcc dot gnu dot org  2004-08-06 23:23 -------
Confirmed.

Here's something slightly smaller that crashed when compiled with "g++ -O"
(regardless of using -funit-at-a-time or -fno-unit-at-a-time).

==================================================
int foo();
inline void bar() throw() {}

struct A
{
    A()
    {
        int i=foo();

        if (i)
        {
            try         { while (i) ; }
            catch (...) { while (true) ; }
        }
        i=0;
    }
};

struct B
{
    ~B() { while (true) ; }
};

A* p;

void baz()
{
    p=new A;
    B b;
    bar();
}
==================================================


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |reichelt at gcc dot gnu dot
                   |                            |org
           Severity|normal                      |critical
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |ice-on-valid-code, monitored
      Known to fail|                            |3.4.0 3.4.1
      Known to work|                            |3.3.4 3.5.0
   Last reconfirmed|0000-00-00 00:00:00         |2004-08-06 23:23:12
               date|                            |
            Summary|ICE (segfault) while        |[3.4 regression] ICE
                   |compiling with -funit-at-a- |(segfault) with exceptions
                   |time                        |
   Target Milestone|---                         |3.4.2


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


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

* [Bug c++/16905] [3.4 regression] ICE (segfault) with exceptions
  2004-08-06 21:02 [Bug c++/16905] New: ICE (segfault) while compiling with -funit-at-a-time rjpeters at klab dot caltech dot edu
                   ` (3 preceding siblings ...)
  2004-08-06 23:23 ` [Bug c++/16905] [3.4 regression] ICE (segfault) with exceptions reichelt at gcc dot gnu dot org
@ 2004-08-06 23:42 ` rjpeters at klab dot caltech dot edu
  2004-08-09  1:37 ` pinskia at gcc dot gnu dot org
  2004-08-24 11:24 ` reichelt at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: rjpeters at klab dot caltech dot edu @ 2004-08-06 23:42 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rjpeters at klab dot caltech dot edu  2004-08-06 23:41 -------
(In reply to comment #3)
> Confirmed.
> 
> Here's something slightly smaller that crashed when compiled with "g++ -O"
> (regardless of using -funit-at-a-time or -fno-unit-at-a-time).

OK, I attached this smaller testcase as 'smaller.cc' ... it now gives the
following backtrace (crashing on the same line as did 'fail.C'):

#0  loop_optimize (f=0xf6e7a500, dumpfile=0xffffffa3, flags=10)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/loop.c:2774
#1  0x083a12ee in rest_of_handle_loop_optimize (decl=0x0, insns=0xf6e7a500)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/toplev.c:3051
#2  0x083a18be in rest_of_compilation (decl=0xf6da4ca8)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/toplev.c:3329
#3  0x083eecfb in tree_rest_of_compilation (fndecl=0xf6da4ca8, nested_p=false)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/tree-optimize.c:168
#4  0x08128744 in expand_body (fn=0xf6da4ca8)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cp/semantics.c:2932
#5  0x083f0b39 in cgraph_expand_function (node=0xf6da82f4)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cgraphunit.c:538
#6  0x083f0c12 in cgraph_assemble_pending_functions ()
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cgraphunit.c:144
#7  0x083f1b05 in cgraph_finalize_function (decl=0xf6da4ca8, nested=false)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cgraphunit.c:225
#8  0x08128a23 in expand_or_defer_fn (fn=0xf6da4ca8)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cp/semantics.c:3015
#9  0x080ef782 in cp_parser_function_definition_after_declarator (
    parser=0xf6d9d740, inline_p=false)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cp/parser.c:14256
#10 0x080efb8d in cp_parser_init_declarator (parser=0xf6d9d740,
    decl_specifiers=0xf6da5820, prefix_attributes=0x0,
    function_definition_allowed_p=true, member_p=false,
    declares_class_or_enum=0, function_definition_p=0xfeee0ca7)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cp/parser.c:14194
#11 0x080ea4d2 in cp_parser_simple_declaration (parser=0xf6d9d740,
    function_definition_allowed_p=true)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cp/parser.c:6486
#12 0x080ea638 in cp_parser_block_declaration (parser=0xf6d9d740,
    statement_p=false)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cp/parser.c:6402
#13 0x080f05ff in cp_parser_declaration (parser=0xf6d9d740)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cp/parser.c:6322
#14 0x080f08bf in cp_parser_declaration_seq_opt (parser=0xf6d9d740)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cp/parser.c:6231
#15 0x080f0a8b in c_parse_file ()
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/cp/parser.c:2319
#16 0x081795b2 in c_common_parse_file (set_yydebug=-93)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/c-opts.c:1237
#17 0x083a3edd in toplev_main (argc=4294967203, argv=0xfefb77bc)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/toplev.c:1822
#18 0x0817cf6e in main (argc=-93, argv=0xffffffa3)
    at /home/rjpeters/build/gcc-3.4-20040730/gcc/main.c:35


This is stretching my limits of gcc comprehension, but anyway here goes... the
segfault happens here

    at /home/rjpeters/build/gcc-3.4-20040730/gcc/loop.c:2774
2774                current_loop->vtop = insn;

which I guess is due to current_loop being NULL, and this seems to jibe with the
debug dumps that I also attached... in .03.eh the looks "look right" to my
untrained eye (either going LOOP_BEG/LOOP_CONT/LOOP_END or just
LOOP_BEG/LOOP_END). But, then in .04.jump there is now a NOTE_INSN_LOOP_VTOP
that is not contained within a LOOP_BEG/LOOP_END pair. Judging from the code
around the crash location in loop.c, I'd guess that the orphaned VTOP isn't
supposed to happen...

-- 


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


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

* [Bug c++/16905] [3.4 regression] ICE (segfault) with exceptions
  2004-08-06 21:02 [Bug c++/16905] New: ICE (segfault) while compiling with -funit-at-a-time rjpeters at klab dot caltech dot edu
                   ` (4 preceding siblings ...)
  2004-08-06 23:42 ` rjpeters at klab dot caltech dot edu
@ 2004-08-09  1:37 ` pinskia at gcc dot gnu dot org
  2004-08-24 11:24 ` reichelt at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-09  1:37 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-08-09 01:37 -------
: Search converges between 2004-03-01-3.4 (#2) and 2004-03-15-3.4 (#3).

-- 


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


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

* [Bug c++/16905] [3.4 regression] ICE (segfault) with exceptions
  2004-08-06 21:02 [Bug c++/16905] New: ICE (segfault) while compiling with -funit-at-a-time rjpeters at klab dot caltech dot edu
                   ` (5 preceding siblings ...)
  2004-08-09  1:37 ` pinskia at gcc dot gnu dot org
@ 2004-08-24 11:24 ` reichelt at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2004-08-24 11:24 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From reichelt at gcc dot gnu dot org  2004-08-24 11:24 -------
Fixed by Mark's patch
http://gcc.gnu.org/ml/gcc-cvs/2004-08/msg01209.html


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mmitchel at gcc dot gnu dot
                   |                            |org
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


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


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

end of thread, other threads:[~2004-08-24 11:24 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-08-06 21:02 [Bug c++/16905] New: ICE (segfault) while compiling with -funit-at-a-time rjpeters at klab dot caltech dot edu
2004-08-06 21:06 ` [Bug c++/16905] " rjpeters at klab dot caltech dot edu
2004-08-06 21:06 ` rjpeters at klab dot caltech dot edu
2004-08-06 22:38 ` rjpeters at klab dot caltech dot edu
2004-08-06 23:23 ` [Bug c++/16905] [3.4 regression] ICE (segfault) with exceptions reichelt at gcc dot gnu dot org
2004-08-06 23:42 ` rjpeters at klab dot caltech dot edu
2004-08-09  1:37 ` pinskia at gcc dot gnu dot org
2004-08-24 11:24 ` reichelt at gcc dot gnu dot 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).