summaryrefslogtreecommitdiff
path: root/regen
diff options
context:
space:
mode:
authorDaniel Dragan <bulk88@hotmail.com>2012-10-08 02:13:22 -0400
committerSteve Hay <steve.m.hay@googlemail.com>2012-10-09 20:59:01 +0100
commitcdc4a17406010fd176cecceef1e025e34a60202f (patch)
treeb18b5be657986a6db3adabd736d6490a5044b8de /regen
parent5a2b28cee560cf253bd6a196081dfbe2ac9bb22a (diff)
downloadperl-cdc4a17406010fd176cecceef1e025e34a60202f.tar.gz
have embed.pl add PERL_CALLCONV_NO_RET to noreturn statics
In commit 12a2785c7e8 PERL_CALLCONV_NO_RET was added to allow MS Visual C's noreturn to work. In that commit, statics did not get a PERL_CALLCONV_NO_RET so Visual C may not always figure out that a certain static is a noreturn. This patch fixes that and allows statics to be Visual C noreturns. I observed a drop in the .text section from 0xBEAAF to 0xBE8CF on no DEBUGGING 32 bit VC 2003 -01 -GL/-LTCG after applying this.
Diffstat (limited to 'regen')
-rwxr-xr-xregen/embed.pl3
1 files changed, 3 insertions, 0 deletions
diff --git a/regen/embed.pl b/regen/embed.pl
index 9f8a07af30..a7419ba26d 100755
--- a/regen/embed.pl
+++ b/regen/embed.pl
@@ -89,6 +89,9 @@ my ($embed, $core, $ext, $api) = setup_embed();
warn "$func: i and s flags are mutually exclusive"
if $flags =~ /s/ && $flags =~ /i/;
$retval = "$type $splint_flags$retval";
+ if ($never_returns) {
+ $retval = "PERL_CALLCONV_NO_RET $retval";
+ }
$func = "S_$plain_func";
}
else {