> Subject: [perl #114144] [PATCH] MSVC Perl doesn't use noreturn on noreturn functions > From: perlbug-followup@perl.org > To: bulk88@hotmail.com > Date: Mon, 16 Jul 2012 13:12:33 -0700 > > Made a (my first ever, not sure if I did it right) git patch to > implement Visual C noreturn to Perl. I think this should be applied to > maintenance 5.16/14/etc since its a small change yet a large reduction > of object code in the interp and all XS modules. It shouldn't break any > ABI compatibility since croak never has and never will return, and GCC > Perl already does noreturn. > > From post preprocessor XS module, > _________________________________________ > __declspec (dllimport, noreturn) > void Perl_croak (PerlInterpreter * my_perl, const char *pat, ...); > > __declspec (dllimport, noreturn) > void Perl_croak_no_modify (PerlInterpreter * my_perl); > > __declspec (dllimport, noreturn) > void Perl_croak_sv (PerlInterpreter * my_perl, SV * baseex); > > __declspec (dllimport, noreturn) > void Perl_croak_xs_usage (PerlInterpreter * my_perl, const CV * > const cv, const char *const params); > > _________________________________________ > and I checked the asm and the stack clean up code was gone on my local > 5.17 in a XS module. I'm forwarding this to p5p since I originally didn't plan to write a patch to fix the problem, but then I decided to write one, and I wasn't sure whether to file a new ticket or not for the patch, (I changed the title though of this ticket) and I don't want this ticket now having a patch attached to get lost.Thread Next