public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: bangerth@dealii.org
To: gcc-gnats@gcc.gnu.org
Subject: c++/10471: [3.3?/3.4 regression] SegFault in build_cxx_call
Date: Wed, 23 Apr 2003 22:06:00 -0000	[thread overview]
Message-ID: <20030423215823.5060.qmail@sources.redhat.com> (raw)


>Number:         10471
>Category:       c++
>Synopsis:       [3.3?/3.4 regression] SegFault in build_cxx_call
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Apr 23 22:06:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Wolfgang Bangerth
>Release:        unknown-1.0
>Organization:
>Environment:
present mainline
>Description:
This broke our nightly builds yesterday:
-----------------
struct X {
    X ();
};

template <int> struct O {
    struct I {
        I (const X & = X());
    };
};
template struct O<2>;
-----------------------
g/x> /home/bangerth/bin/gcc-3.4-pre/bin/c++ -c y.cc
y.cc: In constructor `O<<anonymous> >::I::I(const X&) [with int <anonymous> =
   2]':
y.cc:6:   instantiated from `O<2>::I'
y.cc:10:   instantiated from here
y.cc:6: internal compiler error: Segmentation fault

The ICE happens here:
(gdb) bt
#0  0x080566b2 in build_cxx_call (fn=0x4015dda0, args=0x401a9154, 
    converted_args=0x401a9168) at ../../gcc-3.4-CVS/gcc/cp/call.c:4741
#1  0x080557ea in build_over_call (cand=0x40180c34, flags=3)
    at ../../gcc-3.4-CVS/gcc/cp/call.c:4710
#2  0x08057760 in build_new_method_call (instance=0x401a9140, fns=0x401a0ec4, 
    args=0x0, conversion_path=0x401a2fc0, flags=3)
    at ../../gcc-3.4-CVS/gcc/cp/call.c:5158
#3  0x080bbf39 in build_functional_cast (exp=0x401a03cc, parms=0x0)
    at ../../gcc-3.4-CVS/gcc/cp/typeck2.c:1239
#4  0x0809f44d in tsubst_default_argument (fn=0x401a03cc, type=0x0, 
    arg=0x401a03cc) at ../../gcc-3.4-CVS/gcc/cp/pt.c:5830
#5  0x0809f5b3 in tsubst_default_arguments (fn=0x401a03cc)
    at ../../gcc-3.4-CVS/gcc/cp/pt.c:5862

Mark, I bet this is the patch that caused this:
----------------------------
revision 1.377
date: 2003/04/22 05:44:07;  author: mmitchel;  state: Exp;  lines: +26 -4
	* Makefile.in (calls.o): Depend on except.h.
	* calls.c: Include except.h.
	(emit_call_1): Call note_eh_region_may_contain_throw if
	appropriate.
	* except.c (eh_region): Add may_contain_throw.
	(expand_eh_region_end_cleanup): Do not include handler code when
	it cannot be reached.
	(note_eh_region_may_contain_throw): New function.
	* except.h (note_eh_region_may_contain_throw): New function.

	* call.c (build_over_call): Use build_cxx_call.
	(build_cxx_call): New method, split out of build_over_call.
	* cp-tree.h (language_function): Add can_throw.
	(build_cxx_call): Declare it.
	* decl.c (finish_function): If a function does not contain any
	calls to functions that can throw an exception, indicate that
	fact.
	* decl2.c (mark_used): Do not defer the instantiation of
	functions, if the current function does not throw.
	* optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones.
	* pt.c (instantiate_decl): Make sure import_export_decl is called
	before emitting things.
	* rtti.c (throw_bad_cast): Use build_cxx_call.
	(build_dynamic_cast_1): Likewise.
	* typeck.c (build_function_call): Likewise.

Can you take a look? The patch also seems to be on the
3.3 branch, but I don't have a recent enough build to
actually check that the same happens there.

Thanks
  Wolfgang
>How-To-Repeat:

>Fix:

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


             reply	other threads:[~2003-04-23 22:06 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-23 22:06 bangerth [this message]
2003-04-23 22:10 bangerth
2003-04-24  6:02 mmitchel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030423215823.5060.qmail@sources.redhat.com \
    --to=bangerth@dealii.org \
    --cc=gcc-gnats@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).