diff options
author | Jason Merrill <jason@gcc.gnu.org> | 1999-04-12 20:04:33 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1999-04-12 20:04:33 -0400 |
commit | 20c395720e1d3731f347086be7b26ea35eb98bb6 (patch) | |
tree | 20c8c44930f25b22689f2cefe0c35ee5300fafb2 | |
parent | 46ff11fda2f280b3d71e8eae3e2b6d243cd6c2d7 (diff) | |
download | gcc-20c395720e1d3731f347086be7b26ea35eb98bb6.zip gcc-20c395720e1d3731f347086be7b26ea35eb98bb6.tar.gz gcc-20c395720e1d3731f347086be7b26ea35eb98bb6.tar.bz2 |
update comment
From-SVN: r26391
-rw-r--r-- | gcc/cp/init.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/cp/init.c b/gcc/cp/init.c index c51815f..d8e5458 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -2390,10 +2390,14 @@ build_new_1 (exp) rval = build (VEC_INIT_EXPR, TREE_TYPE (rval), save_expr (rval), init, nelts); - /* If any part of the object initialization terminates by throwing - an exception and the new-expression does not contain a - new-placement, then the deallocation function is called to free - the memory in which the object was being constructed. */ + /* If any part of the object initialization terminates by throwing an + exception and a suitable deallocation function can be found, the + deallocation function is called to free the memory in which the + object was being constructed, after which the exception continues + to propagate in the context of the new-expression. If no + unambiguous matching deallocation function can be found, + propagating the exception does not cause the object's memory to be + freed. */ if (flag_exceptions && alloc_expr && ! use_java_new) { enum tree_code dcode = has_array ? VEC_DELETE_EXPR : DELETE_EXPR; |