File Coverage

ext/POSIX/const-xs.inc
Criterion Covered Total %
statement 54 58 93.1
branch n/a
condition n/a
subroutine n/a
total 54 58 93.1


line stmt bran cond sub time code
1           BOOT:
2           {
3           #ifdef dTHX
4           dTHX;
5           #endif
6 1188         HV *symbol_table = get_hv("POSIX::", GV_ADD);
7            
8           static const struct iv_s values_for_iv[] =
9           {
10           #ifdef ARG_MAX
11           { "ARG_MAX", 7, ARG_MAX },
12           #endif
13           #ifdef B0
14           { "B0", 2, B0 },
15           #endif
16           #ifdef B110
17           { "B110", 4, B110 },
18           #endif
19           #ifdef B1200
20           { "B1200", 5, B1200 },
21           #endif
22           #ifdef B134
23           { "B134", 4, B134 },
24           #endif
25           #ifdef B150
26           { "B150", 4, B150 },
27           #endif
28           #ifdef B1800
29           { "B1800", 5, B1800 },
30           #endif
31           #ifdef B19200
32           { "B19200", 6, B19200 },
33           #endif
34           #ifdef B200
35           { "B200", 4, B200 },
36           #endif
37           #ifdef B2400
38           { "B2400", 5, B2400 },
39           #endif
40           #ifdef B300
41           { "B300", 4, B300 },
42           #endif
43           #ifdef B38400
44           { "B38400", 6, B38400 },
45           #endif
46           #ifdef B4800
47           { "B4800", 5, B4800 },
48           #endif
49           #ifdef B50
50           { "B50", 3, B50 },
51           #endif
52           #ifdef B600
53           { "B600", 4, B600 },
54           #endif
55           #ifdef B75
56           { "B75", 3, B75 },
57           #endif
58           #ifdef B9600
59           { "B9600", 5, B9600 },
60           #endif
61           #ifdef BRKINT
62           { "BRKINT", 6, BRKINT },
63           #endif
64           #ifdef BUFSIZ
65           { "BUFSIZ", 6, BUFSIZ },
66           #endif
67           #ifdef CHAR_BIT
68           { "CHAR_BIT", 8, CHAR_BIT },
69           #endif
70           #ifdef CHAR_MAX
71           { "CHAR_MAX", 8, CHAR_MAX },
72           #endif
73           #ifdef CHAR_MIN
74           { "CHAR_MIN", 8, CHAR_MIN },
75           #endif
76           #ifdef CHILD_MAX
77           { "CHILD_MAX", 9, CHILD_MAX },
78           #endif
79           #ifdef CLOCAL
80           { "CLOCAL", 6, CLOCAL },
81           #endif
82           #ifdef CLOCKS_PER_SEC
83           { "CLOCKS_PER_SEC", 14, CLOCKS_PER_SEC },
84           #endif
85           #ifdef CREAD
86           { "CREAD", 5, CREAD },
87           #endif
88           #ifdef CS5
89           { "CS5", 3, CS5 },
90           #endif
91           #ifdef CS6
92           { "CS6", 3, CS6 },
93           #endif
94           #ifdef CS7
95           { "CS7", 3, CS7 },
96           #endif
97           #ifdef CS8
98           { "CS8", 3, CS8 },
99           #endif
100           #ifdef CSIZE
101           { "CSIZE", 5, CSIZE },
102           #endif
103           #ifdef CSTOPB
104           { "CSTOPB", 6, CSTOPB },
105           #endif
106           #ifdef E2BIG
107           { "E2BIG", 5, E2BIG },
108           #endif
109           #ifdef EACCES
110           { "EACCES", 6, EACCES },
111           #endif
112           #ifdef EADDRINUSE
113           { "EADDRINUSE", 10, EADDRINUSE },
114           #endif
115           #ifdef EADDRNOTAVAIL
116           { "EADDRNOTAVAIL", 13, EADDRNOTAVAIL },
117           #endif
118           #ifdef EAFNOSUPPORT
119           { "EAFNOSUPPORT", 12, EAFNOSUPPORT },
120           #endif
121           #ifdef EAGAIN
122           { "EAGAIN", 6, EAGAIN },
123           #endif
124           #ifdef EALREADY
125           { "EALREADY", 8, EALREADY },
126           #endif
127           #ifdef EBADF
128           { "EBADF", 5, EBADF },
129           #endif
130           #ifdef EBUSY
131           { "EBUSY", 5, EBUSY },
132           #endif
133           #ifdef ECHILD
134           { "ECHILD", 6, ECHILD },
135           #endif
136           #ifdef ECHO
137           { "ECHO", 4, ECHO },
138           #endif
139           #ifdef ECHOE
140           { "ECHOE", 5, ECHOE },
141           #endif
142           #ifdef ECHOK
143           { "ECHOK", 5, ECHOK },
144           #endif
145           #ifdef ECHONL
146           { "ECHONL", 6, ECHONL },
147           #endif
148           #ifdef ECONNABORTED
149           { "ECONNABORTED", 12, ECONNABORTED },
150           #endif
151           #ifdef ECONNREFUSED
152           { "ECONNREFUSED", 12, ECONNREFUSED },
153           #endif
154           #ifdef ECONNRESET
155           { "ECONNRESET", 10, ECONNRESET },
156           #endif
157           #ifdef EDEADLK
158           { "EDEADLK", 7, EDEADLK },
159           #endif
160           #ifdef EDESTADDRREQ
161           { "EDESTADDRREQ", 12, EDESTADDRREQ },
162           #endif
163           #ifdef EDOM
164           { "EDOM", 4, EDOM },
165           #endif
166           #ifdef EDQUOT
167           { "EDQUOT", 6, EDQUOT },
168           #endif
169           #ifdef EEXIST
170           { "EEXIST", 6, EEXIST },
171           #endif
172           #ifdef EFAULT
173           { "EFAULT", 6, EFAULT },
174           #endif
175           #ifdef EFBIG
176           { "EFBIG", 5, EFBIG },
177           #endif
178           #ifdef EHOSTDOWN
179           { "EHOSTDOWN", 9, EHOSTDOWN },
180           #endif
181           #ifdef EHOSTUNREACH
182           { "EHOSTUNREACH", 12, EHOSTUNREACH },
183           #endif
184           #ifdef EINPROGRESS
185           { "EINPROGRESS", 11, EINPROGRESS },
186           #endif
187           #ifdef EINTR
188           { "EINTR", 5, EINTR },
189           #endif
190           #ifdef EINVAL
191           { "EINVAL", 6, EINVAL },
192           #endif
193           #ifdef EIO
194           { "EIO", 3, EIO },
195           #endif
196           #ifdef EISCONN
197           { "EISCONN", 7, EISCONN },
198           #endif
199           #ifdef EISDIR
200           { "EISDIR", 6, EISDIR },
201           #endif
202           #ifdef ELOOP
203           { "ELOOP", 5, ELOOP },
204           #endif
205           #ifdef EMFILE
206           { "EMFILE", 6, EMFILE },
207           #endif
208           #ifdef EMLINK
209           { "EMLINK", 6, EMLINK },
210           #endif
211           #ifdef EMSGSIZE
212           { "EMSGSIZE", 8, EMSGSIZE },
213           #endif
214           #ifdef ENAMETOOLONG
215           { "ENAMETOOLONG", 12, ENAMETOOLONG },
216           #endif
217           #ifdef ENETDOWN
218           { "ENETDOWN", 8, ENETDOWN },
219           #endif
220           #ifdef ENETRESET
221           { "ENETRESET", 9, ENETRESET },
222           #endif
223           #ifdef ENETUNREACH
224           { "ENETUNREACH", 11, ENETUNREACH },
225           #endif
226           #ifdef ENFILE
227           { "ENFILE", 6, ENFILE },
228           #endif
229           #ifdef ENOBUFS
230           { "ENOBUFS", 7, ENOBUFS },
231           #endif
232           #ifdef ENODEV
233           { "ENODEV", 6, ENODEV },
234           #endif
235           #ifdef ENOENT
236           { "ENOENT", 6, ENOENT },
237           #endif
238           #ifdef ENOEXEC
239           { "ENOEXEC", 7, ENOEXEC },
240           #endif
241           #ifdef ENOLCK
242           { "ENOLCK", 6, ENOLCK },
243           #endif
244           #ifdef ENOMEM
245           { "ENOMEM", 6, ENOMEM },
246           #endif
247           #ifdef ENOPROTOOPT
248           { "ENOPROTOOPT", 11, ENOPROTOOPT },
249           #endif
250           #ifdef ENOSPC
251           { "ENOSPC", 6, ENOSPC },
252           #endif
253           #ifdef ENOSYS
254           { "ENOSYS", 6, ENOSYS },
255           #endif
256           #ifdef ENOTBLK
257           { "ENOTBLK", 7, ENOTBLK },
258           #endif
259           #ifdef ENOTCONN
260           { "ENOTCONN", 8, ENOTCONN },
261           #endif
262           #ifdef ENOTDIR
263           { "ENOTDIR", 7, ENOTDIR },
264           #endif
265           #ifdef ENOTEMPTY
266           { "ENOTEMPTY", 9, ENOTEMPTY },
267           #endif
268           #ifdef ENOTSOCK
269           { "ENOTSOCK", 8, ENOTSOCK },
270           #endif
271           #ifdef ENOTTY
272           { "ENOTTY", 6, ENOTTY },
273           #endif
274           #ifdef ENXIO
275           { "ENXIO", 5, ENXIO },
276           #endif
277           #ifdef EOF
278           { "EOF", 3, EOF },
279           #endif
280           #ifdef EOPNOTSUPP
281           { "EOPNOTSUPP", 10, EOPNOTSUPP },
282           #endif
283           #ifdef EPERM
284           { "EPERM", 5, EPERM },
285           #endif
286           #ifdef EPFNOSUPPORT
287           { "EPFNOSUPPORT", 12, EPFNOSUPPORT },
288           #endif
289           #ifdef EPIPE
290           { "EPIPE", 5, EPIPE },
291           #endif
292           #ifdef EPROCLIM
293           { "EPROCLIM", 8, EPROCLIM },
294           #endif
295           #ifdef EPROTONOSUPPORT
296           { "EPROTONOSUPPORT", 15, EPROTONOSUPPORT },
297           #endif
298           #ifdef EPROTOTYPE
299           { "EPROTOTYPE", 10, EPROTOTYPE },
300           #endif
301           #ifdef ERANGE
302           { "ERANGE", 6, ERANGE },
303           #endif
304           #ifdef EREMOTE
305           { "EREMOTE", 7, EREMOTE },
306           #endif
307           #ifdef ERESTART
308           { "ERESTART", 8, ERESTART },
309           #endif
310           #ifdef EROFS
311           { "EROFS", 5, EROFS },
312           #endif
313           #ifdef ESHUTDOWN
314           { "ESHUTDOWN", 9, ESHUTDOWN },
315           #endif
316           #ifdef ESOCKTNOSUPPORT
317           { "ESOCKTNOSUPPORT", 15, ESOCKTNOSUPPORT },
318           #endif
319           #ifdef ESPIPE
320           { "ESPIPE", 6, ESPIPE },
321           #endif
322           #ifdef ESRCH
323           { "ESRCH", 5, ESRCH },
324           #endif
325           #ifdef ESTALE
326           { "ESTALE", 6, ESTALE },
327           #endif
328           #ifdef ETIMEDOUT
329           { "ETIMEDOUT", 9, ETIMEDOUT },
330           #endif
331           #ifdef ETOOMANYREFS
332           { "ETOOMANYREFS", 12, ETOOMANYREFS },
333           #endif
334           #ifdef ETXTBSY
335           { "ETXTBSY", 7, ETXTBSY },
336           #endif
337           #ifdef EUSERS
338           { "EUSERS", 6, EUSERS },
339           #endif
340           #ifdef EWOULDBLOCK
341           { "EWOULDBLOCK", 11, EWOULDBLOCK },
342           #endif
343           #ifdef EXDEV
344           { "EXDEV", 5, EXDEV },
345           #endif
346           #ifdef FILENAME_MAX
347           { "FILENAME_MAX", 12, FILENAME_MAX },
348           #endif
349           #ifdef F_OK
350           { "F_OK", 4, F_OK },
351           #endif
352           #ifdef HUPCL
353           { "HUPCL", 5, HUPCL },
354           #endif
355           #ifdef ICANON
356           { "ICANON", 6, ICANON },
357           #endif
358           #ifdef ICRNL
359           { "ICRNL", 5, ICRNL },
360           #endif
361           #ifdef IEXTEN
362           { "IEXTEN", 6, IEXTEN },
363           #endif
364           #ifdef IGNBRK
365           { "IGNBRK", 6, IGNBRK },
366           #endif
367           #ifdef IGNCR
368           { "IGNCR", 5, IGNCR },
369           #endif
370           #ifdef IGNPAR
371           { "IGNPAR", 6, IGNPAR },
372           #endif
373           #ifdef INLCR
374           { "INLCR", 5, INLCR },
375           #endif
376           #ifdef INPCK
377           { "INPCK", 5, INPCK },
378           #endif
379           #ifdef INT_MAX
380           { "INT_MAX", 7, INT_MAX },
381           #endif
382           #ifdef INT_MIN
383           { "INT_MIN", 7, INT_MIN },
384           #endif
385           #ifdef ISIG
386           { "ISIG", 4, ISIG },
387           #endif
388           #ifdef ISTRIP
389           { "ISTRIP", 6, ISTRIP },
390           #endif
391           #ifdef IXOFF
392           { "IXOFF", 5, IXOFF },
393           #endif
394           #ifdef IXON
395           { "IXON", 4, IXON },
396           #endif
397           #ifdef LC_ALL
398           { "LC_ALL", 6, LC_ALL },
399           #endif
400           #ifdef LC_COLLATE
401           { "LC_COLLATE", 10, LC_COLLATE },
402           #endif
403           #ifdef LC_CTYPE
404           { "LC_CTYPE", 8, LC_CTYPE },
405           #endif
406           #ifdef LC_MESSAGES
407           { "LC_MESSAGES", 11, LC_MESSAGES },
408           #endif
409           #ifdef LC_MONETARY
410           { "LC_MONETARY", 11, LC_MONETARY },
411           #endif
412           #ifdef LC_NUMERIC
413           { "LC_NUMERIC", 10, LC_NUMERIC },
414           #endif
415           #ifdef LC_TIME
416           { "LC_TIME", 7, LC_TIME },
417           #endif
418           #ifdef LINK_MAX
419           { "LINK_MAX", 8, LINK_MAX },
420           #endif
421           #ifdef LONG_MAX
422           { "LONG_MAX", 8, LONG_MAX },
423           #endif
424           #ifdef LONG_MIN
425           { "LONG_MIN", 8, LONG_MIN },
426           #endif
427           #ifdef L_ctermid
428           { "L_ctermid", 9, L_ctermid },
429           #endif
430           #ifdef L_cuserid
431           { "L_cuserid", 9, L_cuserid },
432           #endif
433           #ifdef L_tmpnam
434           { "L_tmpnam", 8, L_tmpnam },
435           #endif
436           #ifdef MAX_CANON
437           { "MAX_CANON", 9, MAX_CANON },
438           #endif
439           #ifdef MAX_INPUT
440           { "MAX_INPUT", 9, MAX_INPUT },
441           #endif
442           #ifdef MB_LEN_MAX
443           { "MB_LEN_MAX", 10, MB_LEN_MAX },
444           #endif
445           #ifdef MSG_CTRUNC
446           { "MSG_CTRUNC", 10, MSG_CTRUNC },
447           #endif
448           #ifdef MSG_DONTROUTE
449           { "MSG_DONTROUTE", 13, MSG_DONTROUTE },
450           #endif
451           #ifdef MSG_EOR
452           { "MSG_EOR", 7, MSG_EOR },
453           #endif
454           #ifdef MSG_OOB
455           { "MSG_OOB", 7, MSG_OOB },
456           #endif
457           #ifdef MSG_PEEK
458           { "MSG_PEEK", 8, MSG_PEEK },
459           #endif
460           #ifdef MSG_TRUNC
461           { "MSG_TRUNC", 9, MSG_TRUNC },
462           #endif
463           #ifdef MSG_WAITALL
464           { "MSG_WAITALL", 11, MSG_WAITALL },
465           #endif
466           #ifdef NAME_MAX
467           { "NAME_MAX", 8, NAME_MAX },
468           #endif
469           #ifdef NCCS
470           { "NCCS", 4, NCCS },
471           #endif
472           #ifdef NGROUPS_MAX
473           { "NGROUPS_MAX", 11, NGROUPS_MAX },
474           #endif
475           #ifdef NOFLSH
476           { "NOFLSH", 6, NOFLSH },
477           #endif
478           #ifdef OPEN_MAX
479           { "OPEN_MAX", 8, OPEN_MAX },
480           #endif
481           #ifdef OPOST
482           { "OPOST", 5, OPOST },
483           #endif
484           #ifdef PARENB
485           { "PARENB", 6, PARENB },
486           #endif
487           #ifdef PARMRK
488           { "PARMRK", 6, PARMRK },
489           #endif
490           #ifdef PARODD
491           { "PARODD", 6, PARODD },
492           #endif
493           #ifdef PATH_MAX
494           { "PATH_MAX", 8, PATH_MAX },
495           #endif
496           #ifdef PIPE_BUF
497           { "PIPE_BUF", 8, PIPE_BUF },
498           #endif
499           #ifdef RAND_MAX
500           { "RAND_MAX", 8, RAND_MAX },
501           #endif
502           #ifdef R_OK
503           { "R_OK", 4, R_OK },
504           #endif
505           #ifdef SCHAR_MAX
506           { "SCHAR_MAX", 9, SCHAR_MAX },
507           #endif
508           #ifdef SCHAR_MIN
509           { "SCHAR_MIN", 9, SCHAR_MIN },
510           #endif
511           #ifdef SHRT_MAX
512           { "SHRT_MAX", 8, SHRT_MAX },
513           #endif
514           #ifdef SHRT_MIN
515           { "SHRT_MIN", 8, SHRT_MIN },
516           #endif
517           #ifdef SIGABRT
518           { "SIGABRT", 7, SIGABRT },
519           #endif
520           #ifdef SIGALRM
521           { "SIGALRM", 7, SIGALRM },
522           #endif
523           #ifdef SIGCHLD
524           { "SIGCHLD", 7, SIGCHLD },
525           #endif
526           #ifdef SIGCONT
527           { "SIGCONT", 7, SIGCONT },
528           #endif
529           #ifdef SIGFPE
530           { "SIGFPE", 6, SIGFPE },
531           #endif
532           #ifdef SIGHUP
533           { "SIGHUP", 6, SIGHUP },
534           #endif
535           #ifdef SIGILL
536           { "SIGILL", 6, SIGILL },
537           #endif
538           #ifdef SIGINT
539           { "SIGINT", 6, SIGINT },
540           #endif
541           #ifdef SIGKILL
542           { "SIGKILL", 7, SIGKILL },
543           #endif
544           #ifdef SIGPIPE
545           { "SIGPIPE", 7, SIGPIPE },
546           #endif
547           #ifdef SIGQUIT
548           { "SIGQUIT", 7, SIGQUIT },
549           #endif
550           #ifdef SIGSEGV
551           { "SIGSEGV", 7, SIGSEGV },
552           #endif
553           #ifdef SIGSTOP
554           { "SIGSTOP", 7, SIGSTOP },
555           #endif
556           #ifdef SIGTERM
557           { "SIGTERM", 7, SIGTERM },
558           #endif
559           #ifdef SIGTSTP
560           { "SIGTSTP", 7, SIGTSTP },
561           #endif
562           #ifdef SIGTTIN
563           { "SIGTTIN", 7, SIGTTIN },
564           #endif
565           #ifdef SIGTTOU
566           { "SIGTTOU", 7, SIGTTOU },
567           #endif
568           #ifdef SIGUSR1
569           { "SIGUSR1", 7, SIGUSR1 },
570           #endif
571           #ifdef SIGUSR2
572           { "SIGUSR2", 7, SIGUSR2 },
573           #endif
574           #ifdef SIG_BLOCK
575           { "SIG_BLOCK", 9, SIG_BLOCK },
576           #endif
577           #ifdef SIG_SETMASK
578           { "SIG_SETMASK", 11, SIG_SETMASK },
579           #endif
580           #ifdef SIG_UNBLOCK
581           { "SIG_UNBLOCK", 11, SIG_UNBLOCK },
582           #endif
583           #ifdef SSIZE_MAX
584           { "SSIZE_MAX", 9, SSIZE_MAX },
585           #endif
586           #ifdef SIGBUS
587           { "SIGBUS", 6, SIGBUS },
588           #endif
589           #ifdef SIGPOLL
590           { "SIGPOLL", 7, SIGPOLL },
591           #endif
592           #ifdef SIGPROF
593           { "SIGPROF", 7, SIGPROF },
594           #endif
595           #ifdef SIGSYS
596           { "SIGSYS", 6, SIGSYS },
597           #endif
598           #ifdef SIGTRAP
599           { "SIGTRAP", 7, SIGTRAP },
600           #endif
601           #ifdef SIGURG
602           { "SIGURG", 6, SIGURG },
603           #endif
604           #ifdef SIGVTALRM
605           { "SIGVTALRM", 9, SIGVTALRM },
606           #endif
607           #ifdef SIGXCPU
608           { "SIGXCPU", 7, SIGXCPU },
609           #endif
610           #ifdef SIGXFSZ
611           { "SIGXFSZ", 7, SIGXFSZ },
612           #endif
613           #ifdef STDERR_FILENO
614           { "STDERR_FILENO", 13, STDERR_FILENO },
615           #endif
616           #ifdef STDIN_FILENO
617           { "STDIN_FILENO", 12, STDIN_FILENO },
618           #endif
619           #ifdef STDOUT_FILENO
620           { "STDOUT_FILENO", 13, STDOUT_FILENO },
621           #endif
622           #ifdef STREAM_MAX
623           { "STREAM_MAX", 10, STREAM_MAX },
624           #endif
625           #ifdef TCIFLUSH
626           { "TCIFLUSH", 8, TCIFLUSH },
627           #endif
628           #ifdef TCIOFF
629           { "TCIOFF", 6, TCIOFF },
630           #endif
631           #ifdef TCIOFLUSH
632           { "TCIOFLUSH", 9, TCIOFLUSH },
633           #endif
634           #ifdef TCION
635           { "TCION", 5, TCION },
636           #endif
637           #ifdef TCOFLUSH
638           { "TCOFLUSH", 8, TCOFLUSH },
639           #endif
640           #ifdef TCOOFF
641           { "TCOOFF", 6, TCOOFF },
642           #endif
643           #ifdef TCOON
644           { "TCOON", 5, TCOON },
645           #endif
646           #ifdef TCSADRAIN
647           { "TCSADRAIN", 9, TCSADRAIN },
648           #endif
649           #ifdef TCSAFLUSH
650           { "TCSAFLUSH", 9, TCSAFLUSH },
651           #endif
652           #ifdef TCSANOW
653           { "TCSANOW", 7, TCSANOW },
654           #endif
655           #ifdef TMP_MAX
656           { "TMP_MAX", 7, TMP_MAX },
657           #endif
658           #ifdef TOSTOP
659           { "TOSTOP", 6, TOSTOP },
660           #endif
661           #ifdef TZNAME_MAX
662           { "TZNAME_MAX", 10, TZNAME_MAX },
663           #endif
664           #ifdef VEOF
665           { "VEOF", 4, VEOF },
666           #endif
667           #ifdef VEOL
668           { "VEOL", 4, VEOL },
669           #endif
670           #ifdef VERASE
671           { "VERASE", 6, VERASE },
672           #endif
673           #ifdef VINTR
674           { "VINTR", 5, VINTR },
675           #endif
676           #ifdef VKILL
677           { "VKILL", 5, VKILL },
678           #endif
679           #ifdef VMIN
680           { "VMIN", 4, VMIN },
681           #endif
682           #ifdef VQUIT
683           { "VQUIT", 5, VQUIT },
684           #endif
685           #ifdef VSTART
686           { "VSTART", 6, VSTART },
687           #endif
688           #ifdef VSTOP
689           { "VSTOP", 5, VSTOP },
690           #endif
691           #ifdef VSUSP
692           { "VSUSP", 5, VSUSP },
693           #endif
694           #ifdef VTIME
695           { "VTIME", 5, VTIME },
696           #endif
697           #ifdef WNOHANG
698           { "WNOHANG", 7, WNOHANG },
699           #endif
700           #ifdef WUNTRACED
701           { "WUNTRACED", 9, WUNTRACED },
702           #endif
703           #ifdef W_OK
704           { "W_OK", 4, W_OK },
705           #endif
706           #ifdef X_OK
707           { "X_OK", 4, X_OK },
708           #endif
709           #ifdef _PC_CHOWN_RESTRICTED
710           { "_PC_CHOWN_RESTRICTED", 20, _PC_CHOWN_RESTRICTED },
711           #endif
712           #ifdef _PC_LINK_MAX
713           { "_PC_LINK_MAX", 12, _PC_LINK_MAX },
714           #endif
715           #ifdef _PC_MAX_CANON
716           { "_PC_MAX_CANON", 13, _PC_MAX_CANON },
717           #endif
718           #ifdef _PC_MAX_INPUT
719           { "_PC_MAX_INPUT", 13, _PC_MAX_INPUT },
720           #endif
721           #ifdef _PC_NAME_MAX
722           { "_PC_NAME_MAX", 12, _PC_NAME_MAX },
723           #endif
724           #ifdef _PC_NO_TRUNC
725           { "_PC_NO_TRUNC", 12, _PC_NO_TRUNC },
726           #endif
727           #ifdef _PC_PATH_MAX
728           { "_PC_PATH_MAX", 12, _PC_PATH_MAX },
729           #endif
730           #ifdef _PC_PIPE_BUF
731           { "_PC_PIPE_BUF", 12, _PC_PIPE_BUF },
732           #endif
733           #ifdef _PC_VDISABLE
734           { "_PC_VDISABLE", 12, _PC_VDISABLE },
735           #endif
736           #ifdef _SC_ARG_MAX
737           { "_SC_ARG_MAX", 11, _SC_ARG_MAX },
738           #endif
739           #ifdef _SC_CHILD_MAX
740           { "_SC_CHILD_MAX", 13, _SC_CHILD_MAX },
741           #endif
742           #ifdef _SC_CLK_TCK
743           { "_SC_CLK_TCK", 11, _SC_CLK_TCK },
744           #endif
745           #ifdef _SC_JOB_CONTROL
746           { "_SC_JOB_CONTROL", 15, _SC_JOB_CONTROL },
747           #endif
748           #ifdef _SC_NGROUPS_MAX
749           { "_SC_NGROUPS_MAX", 15, _SC_NGROUPS_MAX },
750           #endif
751           #ifdef _SC_OPEN_MAX
752           { "_SC_OPEN_MAX", 12, _SC_OPEN_MAX },
753           #endif
754           #ifdef _SC_PAGESIZE
755           { "_SC_PAGESIZE", 12, _SC_PAGESIZE },
756           #endif
757           #ifdef _SC_SAVED_IDS
758           { "_SC_SAVED_IDS", 13, _SC_SAVED_IDS },
759           #endif
760           #ifdef _SC_STREAM_MAX
761           { "_SC_STREAM_MAX", 14, _SC_STREAM_MAX },
762           #endif
763           #ifdef _SC_TZNAME_MAX
764           { "_SC_TZNAME_MAX", 14, _SC_TZNAME_MAX },
765           #endif
766           #ifdef _SC_VERSION
767           { "_SC_VERSION", 11, _SC_VERSION },
768           #endif
769           #ifdef EAI_AGAIN
770           { "EAI_AGAIN", 9, EAI_AGAIN },
771           #endif
772           #ifdef EAI_BADFLAGS
773           { "EAI_BADFLAGS", 12, EAI_BADFLAGS },
774           #endif
775           #ifdef EAI_FAIL
776           { "EAI_FAIL", 8, EAI_FAIL },
777           #endif
778           #ifdef EAI_FAMILY
779           { "EAI_FAMILY", 10, EAI_FAMILY },
780           #endif
781           #ifdef EAI_MEMORY
782           { "EAI_MEMORY", 10, EAI_MEMORY },
783           #endif
784           #ifdef EAI_NONAME
785           { "EAI_NONAME", 10, EAI_NONAME },
786           #endif
787           #ifdef EAI_SERVICE
788           { "EAI_SERVICE", 11, EAI_SERVICE },
789           #endif
790           #ifdef EAI_SOCKTYPE
791           { "EAI_SOCKTYPE", 12, EAI_SOCKTYPE },
792           #endif
793           #ifdef EAI_SYSTEM
794           { "EAI_SYSTEM", 10, EAI_SYSTEM },
795           #endif
796           #ifdef EAI_OVERFLOW
797           { "EAI_OVERFLOW", 12, EAI_OVERFLOW },
798           #endif
799           #ifdef EXIT_FAILURE
800           { "EXIT_FAILURE", 12, EXIT_FAILURE },
801           #endif
802           #ifdef EXIT_SUCCESS
803           { "EXIT_SUCCESS", 12, EXIT_SUCCESS },
804           #endif
805           #ifdef L_tmpname
806           { "L_tmpname", 9, L_tmpnam },
807           #endif
808           #ifdef NULL
809           { "NULL", 4, 0 },
810           #endif
811           #ifdef _POSIX_ARG_MAX
812           { "_POSIX_ARG_MAX", 14, _POSIX_ARG_MAX },
813           #endif
814           #ifdef _POSIX_CHILD_MAX
815           { "_POSIX_CHILD_MAX", 16, _POSIX_CHILD_MAX },
816           #endif
817           #ifdef _POSIX_CHOWN_RESTRICTED
818           { "_POSIX_CHOWN_RESTRICTED", 23, _POSIX_CHOWN_RESTRICTED },
819           #endif
820           #ifdef _POSIX_LINK_MAX
821           { "_POSIX_LINK_MAX", 15, _POSIX_LINK_MAX },
822           #endif
823           #ifdef _POSIX_MAX_CANON
824           { "_POSIX_MAX_CANON", 16, _POSIX_MAX_CANON },
825           #endif
826           #ifdef _POSIX_MAX_INPUT
827           { "_POSIX_MAX_INPUT", 16, _POSIX_MAX_INPUT },
828           #endif
829           #ifdef _POSIX_NAME_MAX
830           { "_POSIX_NAME_MAX", 15, _POSIX_NAME_MAX },
831           #endif
832           #ifdef _POSIX_NGROUPS_MAX
833           { "_POSIX_NGROUPS_MAX", 18, _POSIX_NGROUPS_MAX },
834           #endif
835           #ifdef _POSIX_NO_TRUNC
836           { "_POSIX_NO_TRUNC", 15, _POSIX_NO_TRUNC },
837           #endif
838           #ifdef _POSIX_OPEN_MAX
839           { "_POSIX_OPEN_MAX", 15, _POSIX_OPEN_MAX },
840           #endif
841           #ifdef _POSIX_PATH_MAX
842           { "_POSIX_PATH_MAX", 15, _POSIX_PATH_MAX },
843           #endif
844           #ifdef _POSIX_PIPE_BUF
845           { "_POSIX_PIPE_BUF", 15, _POSIX_PIPE_BUF },
846           #endif
847           #ifdef _POSIX_SSIZE_MAX
848           { "_POSIX_SSIZE_MAX", 16, _POSIX_SSIZE_MAX },
849           #endif
850           #ifdef _POSIX_STREAM_MAX
851           { "_POSIX_STREAM_MAX", 17, _POSIX_STREAM_MAX },
852           #endif
853           #ifdef _POSIX_TZNAME_MAX
854           { "_POSIX_TZNAME_MAX", 17, _POSIX_TZNAME_MAX },
855           #endif
856           #ifdef _POSIX_VDISABLE
857           { "_POSIX_VDISABLE", 15, _POSIX_VDISABLE },
858           #endif
859           #ifdef _POSIX_VERSION
860           { "_POSIX_VERSION", 14, _POSIX_VERSION },
861           #endif
862           #ifndef EXIT_FAILURE
863           /* This is the default value: */
864           { "EXIT_FAILURE", 12, 1 },
865           #endif
866           #ifndef EXIT_SUCCESS
867           /* This is the default value: */
868           { "EXIT_SUCCESS", 12, 0 },
869           #endif
870           #ifndef _POSIX_JOB_CONTROL
871           /* This is the default value: */
872           { "_POSIX_JOB_CONTROL", 18, 0 },
873           #endif
874           #ifndef _POSIX_SAVED_IDS
875           /* This is the default value: */
876           { "_POSIX_SAVED_IDS", 16, 0 },
877           #endif
878           #ifndef _POSIX_ARG_MAX
879           /* This is the default value: */
880           { "_POSIX_ARG_MAX", 14, 0 },
881           #endif
882           #ifndef _POSIX_CHILD_MAX
883           /* This is the default value: */
884           { "_POSIX_CHILD_MAX", 16, 0 },
885           #endif
886           #ifndef _POSIX_CHOWN_RESTRICTED
887           /* This is the default value: */
888           { "_POSIX_CHOWN_RESTRICTED", 23, 0 },
889           #endif
890           #ifndef _POSIX_LINK_MAX
891           /* This is the default value: */
892           { "_POSIX_LINK_MAX", 15, 0 },
893           #endif
894           #ifndef _POSIX_MAX_CANON
895           /* This is the default value: */
896           { "_POSIX_MAX_CANON", 16, 0 },
897           #endif
898           #ifndef _POSIX_MAX_INPUT
899           /* This is the default value: */
900           { "_POSIX_MAX_INPUT", 16, 0 },
901           #endif
902           #ifndef _POSIX_NAME_MAX
903           /* This is the default value: */
904           { "_POSIX_NAME_MAX", 15, 0 },
905           #endif
906           #ifndef _POSIX_NGROUPS_MAX
907           /* This is the default value: */
908           { "_POSIX_NGROUPS_MAX", 18, 0 },
909           #endif
910           #ifndef _POSIX_NO_TRUNC
911           /* This is the default value: */
912           { "_POSIX_NO_TRUNC", 15, 0 },
913           #endif
914           #ifndef _POSIX_OPEN_MAX
915           /* This is the default value: */
916           { "_POSIX_OPEN_MAX", 15, 0 },
917           #endif
918           #ifndef _POSIX_PATH_MAX
919           /* This is the default value: */
920           { "_POSIX_PATH_MAX", 15, 0 },
921           #endif
922           #ifndef _POSIX_PIPE_BUF
923           /* This is the default value: */
924           { "_POSIX_PIPE_BUF", 15, 0 },
925           #endif
926           #ifndef _POSIX_SSIZE_MAX
927           /* This is the default value: */
928           { "_POSIX_SSIZE_MAX", 16, 0 },
929           #endif
930           #ifndef _POSIX_STREAM_MAX
931           /* This is the default value: */
932           { "_POSIX_STREAM_MAX", 17, 0 },
933           #endif
934           #ifndef _POSIX_TZNAME_MAX
935           /* This is the default value: */
936           { "_POSIX_TZNAME_MAX", 17, 0 },
937           #endif
938           #ifndef _POSIX_VDISABLE
939           /* This is the default value: */
940           { "_POSIX_VDISABLE", 15, 0 },
941           #endif
942           #ifndef _POSIX_VERSION
943           /* This is the default value: */
944           { "_POSIX_VERSION", 14, 0 },
945           #endif
946           { NULL, 0, 0 } };
947           const struct iv_s *value_for_iv = values_for_iv;
948            
949           static const struct nv_s values_for_nv[] =
950           {
951           #ifdef DBL_DIG
952           { "DBL_DIG", 7, DBL_DIG },
953           #endif
954           #ifdef DBL_MANT_DIG
955           { "DBL_MANT_DIG", 12, DBL_MANT_DIG },
956           #endif
957           #ifdef DBL_MAX_10_EXP
958           { "DBL_MAX_10_EXP", 14, DBL_MAX_10_EXP },
959           #endif
960           #ifdef DBL_MAX_EXP
961           { "DBL_MAX_EXP", 11, DBL_MAX_EXP },
962           #endif
963           #ifdef DBL_MIN_10_EXP
964           { "DBL_MIN_10_EXP", 14, DBL_MIN_10_EXP },
965           #endif
966           #ifdef DBL_MIN_EXP
967           { "DBL_MIN_EXP", 11, DBL_MIN_EXP },
968           #endif
969           #ifdef FLT_DIG
970           { "FLT_DIG", 7, FLT_DIG },
971           #endif
972           #ifdef FLT_MANT_DIG
973           { "FLT_MANT_DIG", 12, FLT_MANT_DIG },
974           #endif
975           #ifdef FLT_MAX_10_EXP
976           { "FLT_MAX_10_EXP", 14, FLT_MAX_10_EXP },
977           #endif
978           #ifdef FLT_MAX_EXP
979           { "FLT_MAX_EXP", 11, FLT_MAX_EXP },
980           #endif
981           #ifdef FLT_MIN_10_EXP
982           { "FLT_MIN_10_EXP", 14, FLT_MIN_10_EXP },
983           #endif
984           #ifdef FLT_MIN_EXP
985           { "FLT_MIN_EXP", 11, FLT_MIN_EXP },
986           #endif
987           #ifdef FLT_RADIX
988           { "FLT_RADIX", 9, FLT_RADIX },
989           #endif
990           #ifdef LDBL_DIG
991           { "LDBL_DIG", 8, LDBL_DIG },
992           #endif
993           #ifdef LDBL_MANT_DIG
994           { "LDBL_MANT_DIG", 13, LDBL_MANT_DIG },
995           #endif
996           #ifdef LDBL_MAX_10_EXP
997           { "LDBL_MAX_10_EXP", 15, LDBL_MAX_10_EXP },
998           #endif
999           #ifdef LDBL_MAX_EXP
1000           { "LDBL_MAX_EXP", 12, LDBL_MAX_EXP },
1001           #endif
1002           #ifdef LDBL_MIN_10_EXP
1003           { "LDBL_MIN_10_EXP", 15, LDBL_MIN_10_EXP },
1004           #endif
1005           #ifdef LDBL_MIN_EXP
1006           { "LDBL_MIN_EXP", 12, LDBL_MIN_EXP },
1007           #endif
1008           { NULL, 0, 0 } };
1009           const struct nv_s *value_for_nv = values_for_nv;
1010            
1011           static const struct uv_s values_for_uv[] =
1012           {
1013           #ifdef SA_NOCLDSTOP
1014           { "SA_NOCLDSTOP", 12, SA_NOCLDSTOP },
1015           #endif
1016           #ifdef SA_NOCLDWAIT
1017           { "SA_NOCLDWAIT", 12, SA_NOCLDWAIT },
1018           #endif
1019           #ifdef SA_NODEFER
1020           { "SA_NODEFER", 10, SA_NODEFER },
1021           #endif
1022           #ifdef SA_ONSTACK
1023           { "SA_ONSTACK", 10, SA_ONSTACK },
1024           #endif
1025           #ifdef SA_RESETHAND
1026           { "SA_RESETHAND", 12, SA_RESETHAND },
1027           #endif
1028           #ifdef SA_RESTART
1029           { "SA_RESTART", 10, SA_RESTART },
1030           #endif
1031           #ifdef SA_SIGINFO
1032           { "SA_SIGINFO", 10, SA_SIGINFO },
1033           #endif
1034           #ifdef UCHAR_MAX
1035           { "UCHAR_MAX", 9, UCHAR_MAX },
1036           #endif
1037           #ifdef UINT_MAX
1038           { "UINT_MAX", 8, UINT_MAX },
1039           #endif
1040           #ifdef ULONG_MAX
1041           { "ULONG_MAX", 9, ULONG_MAX },
1042           #endif
1043           #ifdef USHRT_MAX
1044           { "USHRT_MAX", 9, USHRT_MAX },
1045           #endif
1046           { NULL, 0, 0 } };
1047           const struct uv_s *value_for_uv = values_for_uv;
1048            
1049           static const struct yes_s values_for_yes[] =
1050           {
1051           #ifdef _POSIX_JOB_CONTROL
1052           { "_POSIX_JOB_CONTROL", 18 },
1053           #endif
1054           #ifdef _POSIX_SAVED_IDS
1055           { "_POSIX_SAVED_IDS", 16 },
1056           #endif
1057           { NULL, 0 } };
1058           const struct yes_s *value_for_yes = values_for_yes;
1059 330264         while (value_for_iv->name) {
1060 327888         constant_add_symbol(aTHX_ symbol_table, value_for_iv->name,
1061           value_for_iv->namelen, newSViv(value_for_iv->value));
1062 327888         ++value_for_iv;
1063           }
1064 23760         while (value_for_nv->name) {
1065 22572         constant_add_symbol(aTHX_ symbol_table, value_for_nv->name,
1066           value_for_nv->namelen, newSVnv(value_for_nv->value));
1067 22572         ++value_for_nv;
1068           }
1069 14256         while (value_for_uv->name) {
1070 13068         constant_add_symbol(aTHX_ symbol_table, value_for_uv->name,
1071           value_for_uv->namelen, newSVuv(value_for_uv->value));
1072 13068         ++value_for_uv;
1073           }
1074 3564         while (value_for_yes->name) {
1075 2376         constant_add_symbol(aTHX_ symbol_table, value_for_yes->name,
1076           value_for_yes->namelen, &PL_sv_yes);
1077 2376         ++value_for_yes;
1078           }
1079           if (C_ARRAY_LENGTH(values_for_notfound) > 1) {
1080           #ifndef SYMBIAN
1081 1188         HV *const constant_missing = get_missing_hash(aTHX);
1082           #endif
1083           const struct notfound_s *value_for_notfound = values_for_notfound;
1084           do {
1085            
1086           /* Need to add prototypes, else parsing will vary by platform. */
1087 14256         HE *he = (HE*) hv_common_key_len(symbol_table,
1088           value_for_notfound->name,
1089           value_for_notfound->namelen,
1090           HV_FETCH_LVALUE, NULL, 0);
1091           SV *sv;
1092           #ifndef SYMBIAN
1093           HEK *hek;
1094           #endif
1095 14256         if (!he) {
1096 0         Perl_croak(aTHX_
1097           "Couldn't add key '%s' to %%POSIX::",
1098           value_for_notfound->name);
1099           }
1100 14256         sv = HeVAL(he);
1101 14256         if (!SvOK(sv) && SvTYPE(sv) != SVt_PVGV) {
1102           /* Nothing was here before, so mark a prototype of "" */
1103 14156         sv_setpvn(sv, "", 0);
1104 100         } else if (SvPOK(sv) && SvCUR(sv) == 0) {
1105           /* There is already a prototype of "" - do nothing */
1106           } else {
1107           /* Someone has been here before us - have to make a real
1108           typeglob. */
1109           /* It turns out to be incredibly hard to deal with all the
1110           corner cases of sub foo (); and reporting errors correctly,
1111           so lets cheat a bit. Start with a constant subroutine */
1112 100         CV *cv = newCONSTSUB(symbol_table,
1113           value_for_notfound->name,
1114           &PL_sv_yes);
1115           /* and then turn it into a non constant declaration only. */
1116 100         SvREFCNT_dec(CvXSUBANY(cv).any_ptr);
1117 100         CvCONST_off(cv);
1118 100         CvXSUB(cv) = NULL;
1119 100         CvXSUBANY(cv).any_ptr = NULL;
1120           }
1121           #ifndef SYMBIAN
1122 14256         hek = HeKEY_hek(he);
1123 14256         if (!hv_common(constant_missing, NULL, HEK_KEY(hek),
1124           HEK_LEN(hek), HEK_FLAGS(hek), HV_FETCH_ISSTORE,
1125           &PL_sv_yes, HEK_HASH(hek)))
1126 0         Perl_croak(aTHX_ "Couldn't add key '%s' to missing_hash",
1127           value_for_notfound->name);
1128           #endif
1129 14256         } while ((++value_for_notfound)->name);
1130           }
1131           #ifdef CLK_TCK
1132           {
1133           IV temp0;
1134           temp0 = CLK_TCK;
1135           constant_add_symbol(aTHX_ symbol_table, "CLK_TCK",
1136           7, newSViv(temp0));
1137           }
1138           #endif
1139           #ifdef MB_CUR_MAX
1140           {
1141           IV temp0;
1142 1188         temp0 = MB_CUR_MAX;
1143 1188         constant_add_symbol(aTHX_ symbol_table, "MB_CUR_MAX",
1144           10, newSViv(temp0));
1145           }
1146           #endif
1147           #ifdef SIG_DFL
1148           {
1149           IV temp0;
1150           temp0 = PTR2IV(SIG_DFL);
1151 1188         constant_add_symbol(aTHX_ symbol_table, "SIG_DFL",
1152           7, newSViv(temp0));
1153           }
1154           #endif
1155           #ifdef SIG_ERR
1156           {
1157           IV temp0;
1158           temp0 = PTR2IV(SIG_ERR);
1159 1188         constant_add_symbol(aTHX_ symbol_table, "SIG_ERR",
1160           7, newSViv(temp0));
1161           }
1162           #endif
1163           #ifdef SIG_IGN
1164           {
1165           IV temp0;
1166           temp0 = PTR2IV(SIG_IGN);
1167 1188         constant_add_symbol(aTHX_ symbol_table, "SIG_IGN",
1168           7, newSViv(temp0));
1169           }
1170           #endif
1171           #ifdef FLT_ROUNDS
1172           {
1173           NV temp0;
1174           temp0 = FLT_ROUNDS;
1175 1188         constant_add_symbol(aTHX_ symbol_table, "FLT_ROUNDS",
1176           10, newSVnv(temp0));
1177           }
1178           #endif
1179           #if (defined(USE_LONG_DOUBLE) && defined(HUGE_VALL)) || defined(HUGE_VAL)
1180           /* HUGE_VALL is admittedly non-POSIX but if we are using long doubles
1181           * we might as well use long doubles. --jhi */
1182           {
1183           NV temp0;
1184           temp0 =
1185           #if defined(USE_LONG_DOUBLE) && defined(HUGE_VALL)
1186           HUGE_VALL
1187           #else
1188           HUGE_VAL
1189           #endif
1190           ;
1191 1188         constant_add_symbol(aTHX_ symbol_table, "HUGE_VAL",
1192           8, newSVnv(temp0));
1193           }
1194           #endif
1195           #ifdef DBL_MAX
1196           {
1197           NV temp0;
1198           temp0 = DBL_MAX;
1199 1188         constant_add_symbol(aTHX_ symbol_table, "DBL_MAX",
1200           7, newSVnv(temp0));
1201           }
1202           #endif
1203           #ifdef FLT_MAX
1204           {
1205           NV temp0;
1206           temp0 = FLT_MAX;
1207 1188         constant_add_symbol(aTHX_ symbol_table, "FLT_MAX",
1208           7, newSVnv(temp0));
1209           }
1210           #endif
1211           #ifdef LDBL_MAX
1212           {
1213           NV temp0;
1214           temp0 = LDBL_MAX;
1215           constant_add_symbol(aTHX_ symbol_table, "LDBL_MAX",
1216           8, newSVnv(temp0));
1217           }
1218           #endif
1219           #ifdef LDBL_MIN
1220           {
1221           NV temp0;
1222           temp0 = LDBL_MIN;
1223           constant_add_symbol(aTHX_ symbol_table, "LDBL_MIN",
1224           8, newSVnv(temp0));
1225           }
1226           #endif
1227           #ifdef LDBL_EPSILON
1228           {
1229           NV temp0;
1230           temp0 = LDBL_EPSILON;
1231           constant_add_symbol(aTHX_ symbol_table, "LDBL_EPSILON",
1232           12, newSVnv(temp0));
1233           }
1234           #endif
1235           #ifdef DBL_EPSILON
1236           {
1237           NV temp0;
1238           temp0 = DBL_EPSILON;
1239 1188         constant_add_symbol(aTHX_ symbol_table, "DBL_EPSILON",
1240           11, newSVnv(temp0));
1241           }
1242           #endif
1243           #ifdef DBL_MIN
1244           {
1245           NV temp0;
1246           temp0 = DBL_MIN;
1247 1188         constant_add_symbol(aTHX_ symbol_table, "DBL_MIN",
1248           7, newSVnv(temp0));
1249           }
1250           #endif
1251           #ifdef FLT_EPSILON
1252           {
1253           NV temp0;
1254           temp0 = FLT_EPSILON;
1255 1188         constant_add_symbol(aTHX_ symbol_table, "FLT_EPSILON",
1256           11, newSVnv(temp0));
1257           }
1258           #endif
1259           #ifdef FLT_MIN
1260           {
1261           NV temp0;
1262           temp0 = FLT_MIN;
1263 1188         constant_add_symbol(aTHX_ symbol_table, "FLT_MIN",
1264           7, newSVnv(temp0));
1265           }
1266           #endif
1267           #ifdef SIGRTMAX
1268           {
1269           IV temp0;
1270 1188         temp0 = SIGRTMAX;
1271 1188         constant_add_symbol(aTHX_ symbol_table, "SIGRTMAX",
1272           8, newSViv(temp0));
1273           }
1274           #endif
1275           #ifdef SIGRTMIN
1276           {
1277           IV temp0;
1278 1188         temp0 = SIGRTMIN;
1279 1188         constant_add_symbol(aTHX_ symbol_table, "SIGRTMIN",
1280           8, newSViv(temp0));
1281           }
1282           #endif
1283           /* As we've been creating subroutines, we better invalidate any cached
1284           methods */
1285 1188         mro_method_changed_in(symbol_table);
1286           }
1287            
1288           void
1289           constant(sv)
1290           INPUT:
1291           SV * sv;
1292           PREINIT:
1293 258         const PERL_CONTEXT *cx = caller_cx(0, NULL);
1294           /* cx is NULL if we've been called from the top level. PL_curcop isn't
1295           ideal, but it's much cheaper than other ways of not going SEGV. */
1296 258         const COP *cop = cx ? cx->blk_oldcop : PL_curcop;
1297           PPCODE:
1298           #ifndef SYMBIAN
1299           /* It's not obvious how to calculate this at C pre-processor time.
1300           However, any compiler optimiser worth its salt should be able to
1301           remove the dead code, and hopefully the now-obviously-unused static
1302           function too. */
1303 258         HV *constant_missing = (C_ARRAY_LENGTH(values_for_notfound) > 1)
1304           ? get_missing_hash(aTHX) : NULL;
1305 258         if ((C_ARRAY_LENGTH(values_for_notfound) > 1)
1306 258         ? hv_exists_ent(constant_missing, sv, 0) : 0) {
1307 774         sv = newSVpvf("Your vendor has not defined POSIX macro %" SVf
1308           ", used at %" COP_FILE_F " line %d\n", sv,
1309 516         COP_FILE(cop), CopLINE(cop));
1310           } else
1311           #endif
1312           {
1313 0         sv = newSVpvf("%"SVf" is not a valid POSIX macro at %"
1314 0         COP_FILE_F " line %d\n", sv, COP_FILE(cop), CopLINE(cop));
1315           }
1316 258         croak_sv(sv_2mortal(sv));