This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
sjlj-exceptions ICE. simplified test case
- To: gcc at gcc dot gnu dot org
- Subject: sjlj-exceptions ICE. simplified test case
- From: Robert Lipe <robertl at sco dot com>
- Date: Sun, 23 Apr 2000 22:34:01 -0500
This test case, derived from tinfo.cc during bootstrap, shows more
concisely the ICE I reported earlier in the week. I've verified that
it also fails on i686-pc-linux. To reproduce, invoke cc1plus with '-O2
-sjlj-exceptions'.
I probably hacked this down too small; I was focusing on reproducing
the error and lost track of producing a piece of code that would still
compile if not for the ICE. If there is interest, I can install it in
the testsuite in g++.robertl/ice* or another location of your choosing.
(See, Kaveh, I do listen. :-)
RJL
// Build don't link:
// Special g++ Options: -fsjlj-exceptions -O2
struct __mumble{};
struct __class_type_info : public __mumble {
struct base_info {
int bletch;
};
const base_info *base_list;
int n_bases;
__class_type_info (const char *name, const base_info *bl, int bn)
: __user_type_info (name), base_list (bl), n_bases (bn) {}
};
void
__rtti_class (void *addr, const char *name,
const __class_type_info::base_info *bl, int bn)
{ new (addr) __class_type_info (name, bl, bn); }
(call_insn 261 278 266 (call_placeholder 256 250 0 0 (call_insn/u 256 0 258 (set (reg:SI 0 eax)
(call (mem:QI (symbol_ref:SI ("__get_eh_context")) 0)
(const_int 0 [0x0]))) -1 (nil)
(insn_list:REG_LIBCALL 258 (expr_list:REG_EH_REGION (const_int -1 [0xffffffff])
(nil)))
(nil))) -1 (nil)
(nil)
(nil))
x.cc:15: Internal compiler error in `extract_insn', at recog.c:2044