diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-24 05:54:46 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-24 05:54:46 +0000 |
commit | fd68dbde67e4a8c062be5ec69549bdef45853def (patch) | |
tree | 847e439c5b9b41d97abfec677c854b5ef9a916cc /gcc | |
parent | d674a143722ab59071e5a50f371303a2511faecd (diff) | |
download | ppe42-gcc-fd68dbde67e4a8c062be5ec69549bdef45853def.tar.gz ppe42-gcc-fd68dbde67e4a8c062be5ec69549bdef45853def.zip |
PR c++/10471
* call.c (build_cxx_call): Robustify.
PR c++/10471
* g++.dg/template/defarg2.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66032 138bc75d-0d04-0410-961f-82ee72b054a4
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 13d2c54adfb..37955beae7b 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 f7253d50003..200aae721e7 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 5a90c05cc5c..3195c2f56a3 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 00000000000..3670389c5d0 --- /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>; |