1 /*******************************************************************************
2 *
3 * Perl/Pollution/Portability
4 *
5 ********************************************************************************
6 *
7 * Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
8 * Version 2.x, Copyright (C) 2001, Paul Marquess.
9 * Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
10 *
11 * This program is free software; you can redistribute it and/or
12 * modify it under the same terms as Perl itself.
13 *
14 *******************************************************************************/
15
16 #include "EXTERN.h"
17 #include "perl.h"
18
19 #define NEED_PL_parser
20 #define NO_XSLOCKS
21 #include "XSUB.h"
22
23 #include "ppport.h"
24
throws_exception(int throw_e)25 static void throws_exception(int throw_e)
26 {
27 if (throw_e)
28 croak("boo\n");
29 }
30
exception(int throw_e)31 int exception(int throw_e)
32 {
33 dTHR;
34 dXCPT;
35 SV *caught = get_sv("Devel::PPPort::exception_caught", 0);
36
37 XCPT_TRY_START {
38 throws_exception(throw_e);
39 } XCPT_TRY_END
40
41 XCPT_CATCH
42 {
43 sv_setiv(caught, 1);
44 XCPT_RETHROW;
45 }
46
47 sv_setiv(caught, 0);
48
49 return 42;
50 }
51
call_newCONSTSUB_3(void)52 void call_newCONSTSUB_3(void)
53 {
54 newCONSTSUB(gv_stashpv("Devel::PPPort", FALSE), "test_value_3", newSViv(3));
55 }
56
get_PL_signals_3(void)57 U32 get_PL_signals_3(void)
58 {
59 return PL_signals;
60 }
61
dummy_parser_warning(void)62 int dummy_parser_warning(void)
63 {
64 char * volatile my_bufptr;
65 char * volatile *my_p_bufptr;
66 my_bufptr = PL_bufptr;
67 my_p_bufptr = &PL_bufptr;
68 PL_bufptr = my_bufptr;
69 PL_bufptr = *my_p_bufptr;
70 return my_p_bufptr != NULL;
71 }
72