diff options
author | Mark Mitchell <mark@codesourcery.com> | 2003-04-24 05:54:46 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2003-04-24 05:54:46 +0000 |
commit | 374ca7f74e476db1cf06296eea9ca4bce8b2264a (patch) | |
tree | 847e439c5b9b41d97abfec677c854b5ef9a916cc /gcc | |
parent | 6ff76c365c69c190001c9a00a85f07a9869494f0 (diff) | |
download | gcc-374ca7f74e476db1cf06296eea9ca4bce8b2264a.zip gcc-374ca7f74e476db1cf06296eea9ca4bce8b2264a.tar.gz gcc-374ca7f74e476db1cf06296eea9ca4bce8b2264a.tar.bz2 |
re PR c++/10471 (SegFault in build_cxx_call)
PR c++/10471
* call.c (build_cxx_call): Robustify.
PR c++/10471
* g++.dg/template/defarg2.C: New test.
From-SVN: r66032
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/call.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/defarg2.C | 10 |
4 files changed, 23 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 13d2c54..37955be 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2003-04-23 Mark Mitchell <mark@codesourcery.com> + + PR c++/10471 + * call.c (build_cxx_call): Robustify. + 2003-04-23 Neil Booth <neil@daikokuya.co.uk> * Make-lang.in (lex.o): Remove mbchar.h. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index f7253d5..200aae7 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -4737,7 +4737,9 @@ build_cxx_call(tree fn, tree args, tree converted_args) /* If this call might throw an exception, note that fact. */ fndecl = get_callee_fndecl (fn); - if ((!fndecl || !TREE_NOTHROW (fndecl)) && at_function_scope_p ()) + if ((!fndecl || !TREE_NOTHROW (fndecl)) + && at_function_scope_p () + && cfun) cp_function_chain->can_throw = 1; /* Some built-in function calls will be evaluated at compile-time in diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5a90c05..3195c2f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-04-23 Mark Mitchell <mark@codesourcery.com> + + PR c++/10471 + * g++.dg/template/defarg2.C: New test. + 2003-04-23 Neil Booth <neil@daikokuya.co.uk> * gcc.dg/cpp/include2.c: Update. diff --git a/gcc/testsuite/g++.dg/template/defarg2.C b/gcc/testsuite/g++.dg/template/defarg2.C new file mode 100644 index 0000000..3670389 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/defarg2.C @@ -0,0 +1,10 @@ +struct X { + X (); +}; + +template <int> struct O { + struct I { + I (const X & = X()); + }; +}; +template struct O<2>; |