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