diff options
author | Zefram <zefram@fysh.org> | 2010-04-23 02:22:54 +0100 |
---|---|---|
committer | Zefram <zefram@fysh.org> | 2010-04-23 02:22:54 +0100 |
commit | 7ce092845b50544ac127e66e60d73a2f7b707464 (patch) | |
tree | 5cf5b6c0f2b75cb59669fd43c20c1c21b7ab5a66 /cop.h | |
parent | c5df3096702d4a814b3774dff243e7eb74814257 (diff) | |
download | perl-7ce092845b50544ac127e66e60d73a2f7b707464.tar.gz |
bring G_KEEPERR back to the realm of sanity
Makes the G_KEEPERR logic more consistent, and in particular make it
sensibly handle non-string exceptions. An exception in a destructor
is now always emitted as a warning, and never copied or merged into
$@ of the surrounding context. No more clobbering exceptions being
handled elsewhere, and no more double reporting. This fixes the rest of
[perl #74538].
Diffstat (limited to 'cop.h')
-rw-r--r-- | cop.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -778,7 +778,7 @@ L<perlcall>. hash actions codes defined in hv.h */ #define G_EVAL 8 /* Assume eval {} around subroutine call. */ #define G_NOARGS 16 /* Don't construct a @_ array. */ -#define G_KEEPERR 32 /* Append errors to $@, don't overwrite it */ +#define G_KEEPERR 32 /* Warn for errors, don't overwrite $@ */ #define G_NODEBUG 64 /* Disable debugging at toplevel. */ #define G_METHOD 128 /* Calling method. */ #define G_FAKINGEVAL 256 /* Faking an eval context for call_sv or |