Home | History | Annotate | Line # | Download | only in gdb.reverse
sigall-reverse.c revision 1.1.1.8
      1 /* This testcase is part of GDB, the GNU debugger.
      2 
      3    Copyright 2009-2024 Free Software Foundation, Inc.
      4 
      5    This program is free software; you can redistribute it and/or modify
      6    it under the terms of the GNU General Public License as published by
      7    the Free Software Foundation; either version 3 of the License, or
      8    (at your option) any later version.
      9 
     10    This program is distributed in the hope that it will be useful,
     11    but WITHOUT ANY WARRANTY; without even the implied warranty of
     12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13    GNU General Public License for more details.
     14 
     15    You should have received a copy of the GNU General Public License
     16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     17 
     18 #include <signal.h>
     19 #include <unistd.h>
     20 
     21 
     22 /* Signal handlers, we set breakpoints in them to make sure that the
     23    signals really get delivered.  */
     24 
     25 void
     26 handle_ABRT (int sig)
     27 {
     28 }
     29 
     30 void
     31 handle_HUP (int sig)
     32 {
     33 }
     34 
     35 void
     36 handle_QUIT (int sig)
     37 {
     38 }
     39 
     40 void
     41 handle_ILL (int sig)
     42 {
     43 }
     44 
     45 void
     46 handle_EMT (int sig)
     47 {
     48 }
     49 
     50 void
     51 handle_FPE (int sig)
     52 {
     53 }
     54 
     55 void
     56 handle_BUS (int sig)
     57 {
     58 }
     59 
     60 void
     61 handle_SEGV (int sig)
     62 {
     63 }
     64 
     65 void
     66 handle_SYS (int sig)
     67 {
     68 }
     69 
     70 void
     71 handle_PIPE (int sig)
     72 {
     73 }
     74 
     75 void
     76 handle_ALRM (int sig)
     77 {
     78 }
     79 
     80 void
     81 handle_URG (int sig)
     82 {
     83 }
     84 
     85 void
     86 handle_TSTP (int sig)
     87 {
     88 }
     89 
     90 void
     91 handle_CONT (int sig)
     92 {
     93 }
     94 
     95 void
     96 handle_CHLD (int sig)
     97 {
     98 }
     99 
    100 void
    101 handle_TTIN (int sig)
    102 {
    103 }
    104 
    105 void
    106 handle_TTOU (int sig)
    107 {
    108 }
    109 
    110 void
    111 handle_IO (int sig)
    112 {
    113 }
    114 
    115 void
    116 handle_XCPU (int sig)
    117 {
    118 }
    119 
    120 void
    121 handle_XFSZ (int sig)
    122 {
    123 }
    124 
    125 void
    126 handle_VTALRM (int sig)
    127 {
    128 }
    129 
    130 void
    131 handle_PROF (int sig)
    132 {
    133 }
    134 
    135 void
    136 handle_WINCH (int sig)
    137 {
    138 }
    139 
    140 void
    141 handle_LOST (int sig)
    142 {
    143 }
    144 
    145 void
    146 handle_USR1 (int sig)
    147 {
    148 }
    149 
    150 void
    151 handle_USR2 (int sig)
    152 {
    153 }
    154 
    155 void
    156 handle_PWR (int sig)
    157 {
    158 }
    159 
    160 void
    161 handle_POLL (int sig)
    162 {
    163 }
    164 
    165 void
    166 handle_WIND (int sig)
    167 {
    168 }
    169 
    170 void
    171 handle_PHONE (int sig)
    172 {
    173 }
    174 
    175 void
    176 handle_WAITING (int sig)
    177 {
    178 }
    179 
    180 void
    181 handle_LWP (int sig)
    182 {
    183 }
    184 
    185 void
    186 handle_DANGER (int sig)
    187 {
    188 }
    189 
    190 void
    191 handle_GRANT (int sig)
    192 {
    193 }
    194 
    195 void
    196 handle_RETRACT (int sig)
    197 {
    198 }
    199 
    200 void
    201 handle_MSG (int sig)
    202 {
    203 }
    204 
    205 void
    206 handle_SOUND (int sig)
    207 {
    208 }
    209 
    210 void
    211 handle_SAK (int sig)
    212 {
    213 }
    214 
    215 void
    216 handle_PRIO (int sig)
    217 {
    218 }
    219 
    220 void
    221 handle_33 (int sig)
    222 {
    223 }
    224 
    225 void
    226 handle_34 (int sig)
    227 {
    228 }
    229 
    230 void
    231 handle_35 (int sig)
    232 {
    233 }
    234 
    235 void
    236 handle_36 (int sig)
    237 {
    238 }
    239 
    240 void
    241 handle_37 (int sig)
    242 {
    243 }
    244 
    245 void
    246 handle_38 (int sig)
    247 {
    248 }
    249 
    250 void
    251 handle_39 (int sig)
    252 {
    253 }
    254 
    255 void
    256 handle_40 (int sig)
    257 {
    258 }
    259 
    260 void
    261 handle_41 (int sig)
    262 {
    263 }
    264 
    265 void
    266 handle_42 (int sig)
    267 {
    268 }
    269 
    270 void
    271 handle_43 (int sig)
    272 {
    273 }
    274 
    275 void
    276 handle_44 (int sig)
    277 {
    278 }
    279 
    280 void
    281 handle_45 (int sig)
    282 {
    283 }
    284 
    285 void
    286 handle_46 (int sig)
    287 {
    288 }
    289 
    290 void
    291 handle_47 (int sig)
    292 {
    293 }
    294 
    295 void
    296 handle_48 (int sig)
    297 {
    298 }
    299 
    300 void
    301 handle_49 (int sig)
    302 {
    303 }
    304 
    305 void
    306 handle_50 (int sig)
    307 {
    308 }
    309 
    310 void
    311 handle_51 (int sig)
    312 {
    313 }
    314 
    315 void
    316 handle_52 (int sig)
    317 {
    318 }
    319 
    320 void
    321 handle_53 (int sig)
    322 {
    323 }
    324 
    325 void
    326 handle_54 (int sig)
    327 {
    328 }
    329 
    330 void
    331 handle_55 (int sig)
    332 {
    333 }
    334 
    335 void
    336 handle_56 (int sig)
    337 {
    338 }
    339 
    340 void
    341 handle_57 (int sig)
    342 {
    343 }
    344 
    345 void
    346 handle_58 (int sig)
    347 {
    348 }
    349 
    350 void
    351 handle_59 (int sig)
    352 {
    353 }
    354 
    355 void
    356 handle_60 (int sig)
    357 {
    358 }
    359 
    360 void
    361 handle_61 (int sig)
    362 {
    363 }
    364 
    365 void
    366 handle_62 (int sig)
    367 {
    368 }
    369 
    370 void
    371 handle_63 (int sig)
    372 {
    373 }
    374 
    375 void
    376 handle_TERM (int sig)
    377 {
    378 }
    379 
    380 /* Functions to send signals.  These also serve as markers.
    382    Ordered ANSI-standard signals first, other signals second,
    383    with signals in each block ordered by their numerical values
    384    on a typical POSIX platform.  */
    385 
    386 /* SIGINT, SIGILL, SIGABRT, SIGFPE, SIGSEGV and SIGTERM
    387    are ANSI-standard signals and are always available.  */
    388 
    389 int
    390 gen_ILL (void)
    391 {
    392   kill (getpid (), SIGILL);
    393   return 0;
    394 }
    395 
    396 int
    397 gen_ABRT (void)
    398 {
    399   kill (getpid (), SIGABRT);
    400   return 0;
    401 }
    402 
    403 int x;
    404 
    405 int
    406 gen_FPE (void)
    407 {
    408   /* The intent behind generating SIGFPE this way is to check the mapping
    409      from the CPU exception itself to the signals.  It would be nice to
    410      do the same for SIGBUS, SIGSEGV, etc., but I suspect that even this
    411      test might turn out to be insufficiently portable.  */
    412 
    413 #if 0
    414   /* Loses on the PA because after the signal handler executes we try to
    415      re-execute the failing instruction again.  Perhaps we could siglongjmp
    416      out of the signal handler?  */
    417   /* The expect script looks for the word "kill"; don't delete it.  */
    418   return 5 / x; /* and we both started jumping up and down yelling kill */
    419 #else
    420   kill (getpid (), SIGFPE);
    421 #endif
    422   return 0;
    423 }
    424 
    425 int
    426 gen_SEGV (void)
    427 {
    428   kill (getpid (), SIGSEGV);
    429   return 0;
    430 }
    431 
    432 int
    433 gen_TERM (void)
    434 {
    435   kill (getpid (), SIGTERM);
    436   return 0;
    437 }
    438 
    439 /* All other signals need preprocessor conditionals.  */
    440 
    441 int
    442 gen_HUP (void)
    443 {
    444 #ifdef SIGHUP
    445   kill (getpid (), SIGHUP);
    446 #else
    447   handle_HUP (0);
    448 #endif
    449 return 0;
    450 }
    451 
    452 int
    453 gen_QUIT (void)
    454 {
    455 #ifdef SIGQUIT
    456   kill (getpid (), SIGQUIT);
    457 #else
    458   handle_QUIT (0);
    459 #endif
    460 return 0;
    461 }
    462 
    463 int
    464 gen_EMT (void)
    465 {
    466 #ifdef SIGEMT
    467   kill (getpid (), SIGEMT);
    468 #else
    469   handle_EMT (0);
    470 #endif
    471 return 0;
    472 }
    473 
    474 int
    475 gen_BUS (void)
    476 {
    477 #ifdef SIGBUS
    478   kill (getpid (), SIGBUS);
    479 #else
    480   handle_BUS (0);
    481 #endif
    482 return 0;
    483 }
    484 
    485 int
    486 gen_SYS (void)
    487 {
    488 #ifdef SIGSYS
    489   kill (getpid (), SIGSYS);
    490 #else
    491   handle_SYS (0);
    492 #endif
    493 return 0;
    494 }
    495 
    496 int
    497 gen_PIPE (void)
    498 {
    499 #ifdef SIGPIPE
    500   kill (getpid (), SIGPIPE);
    501 #else
    502   handle_PIPE (0);
    503 #endif
    504 return 0;
    505 }
    506 
    507 int
    508 gen_ALRM (void)
    509 {
    510 #ifdef SIGALRM
    511   kill (getpid (), SIGALRM);
    512 #else
    513   handle_ALRM (0);
    514 #endif
    515 return 0;
    516 }
    517 
    518 int
    519 gen_URG (void)
    520 {
    521 #ifdef SIGURG
    522   kill (getpid (), SIGURG);
    523 #else
    524   handle_URG (0);
    525 #endif
    526 return 0;
    527 }
    528 
    529 int
    530 gen_TSTP (void)
    531 {
    532 #ifdef SIGTSTP
    533   kill (getpid (), SIGTSTP);
    534 #else
    535   handle_TSTP (0);
    536 #endif
    537 return 0;
    538 }
    539 
    540 int
    541 gen_CONT (void)
    542 {
    543 #ifdef SIGCONT
    544   kill (getpid (), SIGCONT);
    545 #else
    546   handle_CONT (0);
    547 #endif
    548 return 0;
    549 }
    550 
    551 int
    552 gen_CHLD (void)
    553 {
    554 #ifdef SIGCHLD
    555   kill (getpid (), SIGCHLD);
    556 #else
    557   handle_CHLD (0);
    558 #endif
    559 return 0;
    560 }
    561 
    562 int
    563 gen_TTIN (void)
    564 {
    565 #ifdef SIGTTIN
    566   kill (getpid (), SIGTTIN);
    567 #else
    568   handle_TTIN (0);
    569 #endif
    570 return 0;
    571 }
    572 
    573 int
    574 gen_TTOU (void)
    575 {
    576 #ifdef SIGTTOU
    577   kill (getpid (), SIGTTOU);
    578 #else
    579   handle_TTOU (0);
    580 #endif
    581 return 0;
    582 }
    583 
    584 int
    585 gen_IO (void)
    586 {
    587 #ifdef SIGIO
    588   kill (getpid (), SIGIO);
    589 #else
    590   handle_IO (0);
    591 #endif
    592 return 0;
    593 }
    594 
    595 int
    596 gen_XCPU (void)
    597 {
    598 #ifdef SIGXCPU
    599   kill (getpid (), SIGXCPU);
    600 #else
    601   handle_XCPU (0);
    602 #endif
    603 return 0;
    604 }
    605 
    606 int
    607 gen_XFSZ (void)
    608 {
    609 #ifdef SIGXFSZ
    610   kill (getpid (), SIGXFSZ);
    611 #else
    612   handle_XFSZ (0);
    613 #endif
    614 return 0;
    615 }
    616 
    617 int
    618 gen_VTALRM (void)
    619 {
    620 #ifdef SIGVTALRM
    621   kill (getpid (), SIGVTALRM);
    622 #else
    623   handle_VTALRM (0);
    624 #endif
    625 return 0;
    626 }
    627 
    628 int
    629 gen_PROF (void)
    630 {
    631 #ifdef SIGPROF
    632   kill (getpid (), SIGPROF);
    633 #else
    634   handle_PROF (0);
    635 #endif
    636 return 0;
    637 }
    638 
    639 int
    640 gen_WINCH (void)
    641 {
    642 #ifdef SIGWINCH
    643   kill (getpid (), SIGWINCH);
    644 #else
    645   handle_WINCH (0);
    646 #endif
    647 return 0;
    648 }
    649 
    650 int
    651 gen_LOST (void)
    652 {
    653 #if defined(SIGLOST) && SIGLOST != SIGABRT
    654   kill (getpid (), SIGLOST);
    655 #else
    656   handle_LOST (0);
    657 #endif
    658 return 0;
    659 }
    660 
    661 int
    662 gen_USR1 (void)
    663 {
    664 #ifdef SIGUSR1
    665   kill (getpid (), SIGUSR1);
    666 #else
    667   handle_USR1 (0);
    668 #endif
    669 return 0;
    670 }
    671 
    672 int
    673 gen_USR2 (void)
    674 {
    675 #ifdef SIGUSR2
    676   kill (getpid (), SIGUSR2);
    677 #else
    678   handle_USR2 (0);
    679 #endif
    680 return 0;
    681 }
    682 
    683 int
    684 gen_PWR (void)
    685 {
    686 #ifdef SIGPWR
    687   kill (getpid (), SIGPWR);
    688 #else
    689   handle_PWR (0);
    690 #endif
    691 return 0;
    692 }
    693 
    694 int
    695 gen_POLL (void)
    696 {
    697 #if defined (SIGPOLL) && (!defined (SIGIO) || SIGPOLL != SIGIO)
    698   kill (getpid (), SIGPOLL);
    699 #else
    700   handle_POLL (0);
    701 #endif
    702 return 0;
    703 }
    704 
    705 int
    706 gen_WIND (void)
    707 {
    708 #ifdef SIGWIND
    709   kill (getpid (), SIGWIND);
    710 #else
    711   handle_WIND (0);
    712 #endif
    713 return 0;
    714 }
    715 
    716 int
    717 gen_PHONE (void)
    718 {
    719 #ifdef SIGPHONE
    720   kill (getpid (), SIGPHONE);
    721 #else
    722   handle_PHONE (0);
    723 #endif
    724 return 0;
    725 }
    726 
    727 int
    728 gen_WAITING (void)
    729 {
    730 #ifdef SIGWAITING
    731   kill (getpid (), SIGWAITING);
    732 #else
    733   handle_WAITING (0);
    734 #endif
    735 return 0;
    736 }
    737 
    738 int
    739 gen_LWP (void)
    740 {
    741 #ifdef SIGLWP
    742   kill (getpid (), SIGLWP);
    743 #else
    744   handle_LWP (0);
    745 #endif
    746 return 0;
    747 }
    748 
    749 int
    750 gen_DANGER (void)
    751 {
    752 #ifdef SIGDANGER
    753   kill (getpid (), SIGDANGER);
    754 #else
    755   handle_DANGER (0);
    756 #endif
    757 return 0;
    758 }
    759 
    760 int
    761 gen_GRANT (void)
    762 {
    763 #ifdef SIGGRANT
    764   kill (getpid (), SIGGRANT);
    765 #else
    766   handle_GRANT (0);
    767 #endif
    768 return 0;
    769 }
    770 
    771 int
    772 gen_RETRACT (void)
    773 {
    774 #ifdef SIGRETRACT
    775   kill (getpid (), SIGRETRACT);
    776 #else
    777   handle_RETRACT (0);
    778 #endif
    779 return 0;
    780 }
    781 
    782 int
    783 gen_MSG (void)
    784 {
    785 #ifdef SIGMSG
    786   kill (getpid (), SIGMSG);
    787 #else
    788   handle_MSG (0);
    789 #endif
    790 return 0;
    791 }
    792 
    793 int
    794 gen_SOUND (void)
    795 {
    796 #ifdef SIGSOUND
    797   kill (getpid (), SIGSOUND);
    798 #else
    799   handle_SOUND (0);
    800 #endif
    801 return 0;
    802 }
    803 
    804 int
    805 gen_SAK (void)
    806 {
    807 #ifdef SIGSAK
    808   kill (getpid (), SIGSAK);
    809 #else
    810   handle_SAK (0);
    811 #endif
    812 return 0;
    813 }
    814 
    815 int
    816 gen_PRIO (void)
    817 {
    818 #ifdef SIGPRIO
    819   kill (getpid (), SIGPRIO);
    820 #else
    821   handle_PRIO (0);
    822 #endif
    823 return 0;
    824 }
    825 
    826 int
    827 gen_33 (void)
    828 {
    829 #ifdef SIG33
    830   kill (getpid (), 33);
    831 #else
    832   handle_33 (0);
    833 #endif
    834 return 0;
    835 }
    836 
    837 int
    838 gen_34 (void)
    839 {
    840 #ifdef SIG34
    841   kill (getpid (), 34);
    842 #else
    843   handle_34 (0);
    844 #endif
    845 return 0;
    846 }
    847 
    848 int
    849 gen_35 (void)
    850 {
    851 #ifdef SIG35
    852   kill (getpid (), 35);
    853 #else
    854   handle_35 (0);
    855 #endif
    856 return 0;
    857 }
    858 
    859 int
    860 gen_36 (void)
    861 {
    862 #ifdef SIG36
    863   kill (getpid (), 36);
    864 #else
    865   handle_36 (0);
    866 #endif
    867 return 0;
    868 }
    869 
    870 int
    871 gen_37 (void)
    872 {
    873 #ifdef SIG37
    874   kill (getpid (), 37);
    875 #else
    876   handle_37 (0);
    877 #endif
    878 return 0;
    879 }
    880 
    881 int
    882 gen_38 (void)
    883 {
    884 #ifdef SIG38
    885   kill (getpid (), 38);
    886 #else
    887   handle_38 (0);
    888 #endif
    889 return 0;
    890 }
    891 
    892 int
    893 gen_39 (void)
    894 {
    895 #ifdef SIG39
    896   kill (getpid (), 39);
    897 #else
    898   handle_39 (0);
    899 #endif
    900 return 0;
    901 }
    902 
    903 int
    904 gen_40 (void)
    905 {
    906 #ifdef SIG40
    907   kill (getpid (), 40);
    908 #else
    909   handle_40 (0);
    910 #endif
    911 return 0;
    912 }
    913 
    914 int
    915 gen_41 (void)
    916 {
    917 #ifdef SIG41
    918   kill (getpid (), 41);
    919 #else
    920   handle_41 (0);
    921 #endif
    922 return 0;
    923 }
    924 
    925 int
    926 gen_42 (void)
    927 {
    928 #ifdef SIG42
    929   kill (getpid (), 42);
    930 #else
    931   handle_42 (0);
    932 #endif
    933 return 0;
    934 }
    935 
    936 int
    937 gen_43 (void)
    938 {
    939 #ifdef SIG43
    940   kill (getpid (), 43);
    941 #else
    942   handle_43 (0);
    943 #endif
    944 return 0;
    945 }
    946 
    947 int
    948 gen_44 (void)
    949 {
    950 #ifdef SIG44
    951   kill (getpid (), 44);
    952 #else
    953   handle_44 (0);
    954 #endif
    955 return 0;
    956 }
    957 
    958 int
    959 gen_45 (void)
    960 {
    961 #ifdef SIG45
    962   kill (getpid (), 45);
    963 #else
    964   handle_45 (0);
    965 #endif
    966 return 0;
    967 }
    968 
    969 int
    970 gen_46 (void)
    971 {
    972 #ifdef SIG46
    973   kill (getpid (), 46);
    974 #else
    975   handle_46 (0);
    976 #endif
    977 return 0;
    978 }
    979 
    980 int
    981 gen_47 (void)
    982 {
    983 #ifdef SIG47
    984   kill (getpid (), 47);
    985 #else
    986   handle_47 (0);
    987 #endif
    988 return 0;
    989 }
    990 
    991 int
    992 gen_48 (void)
    993 {
    994 #ifdef SIG48
    995   kill (getpid (), 48);
    996 #else
    997   handle_48 (0);
    998 #endif
    999 return 0;
   1000 }
   1001 
   1002 int
   1003 gen_49 (void)
   1004 {
   1005 #ifdef SIG49
   1006   kill (getpid (), 49);
   1007 #else
   1008   handle_49 (0);
   1009 #endif
   1010 return 0;
   1011 }
   1012 
   1013 int
   1014 gen_50 (void)
   1015 {
   1016 #ifdef SIG50
   1017   kill (getpid (), 50);
   1018 #else
   1019   handle_50 (0);
   1020 #endif
   1021 return 0;
   1022 }
   1023 
   1024 int
   1025 gen_51 (void)
   1026 {
   1027 #ifdef SIG51
   1028   kill (getpid (), 51);
   1029 #else
   1030   handle_51 (0);
   1031 #endif
   1032 return 0;
   1033 }
   1034 
   1035 int
   1036 gen_52 (void)
   1037 {
   1038 #ifdef SIG52
   1039   kill (getpid (), 52);
   1040 #else
   1041   handle_52 (0);
   1042 #endif
   1043 return 0;
   1044 }
   1045 
   1046 int
   1047 gen_53 (void)
   1048 {
   1049 #ifdef SIG53
   1050   kill (getpid (), 53);
   1051 #else
   1052   handle_53 (0);
   1053 #endif
   1054 return 0;
   1055 }
   1056 
   1057 int
   1058 gen_54 (void)
   1059 {
   1060 #ifdef SIG54
   1061   kill (getpid (), 54);
   1062 #else
   1063   handle_54 (0);
   1064 #endif
   1065 return 0;
   1066 }
   1067 
   1068 int
   1069 gen_55 (void)
   1070 {
   1071 #ifdef SIG55
   1072   kill (getpid (), 55);
   1073 #else
   1074   handle_55 (0);
   1075 #endif
   1076 return 0;
   1077 }
   1078 
   1079 int
   1080 gen_56 (void)
   1081 {
   1082 #ifdef SIG56
   1083   kill (getpid (), 56);
   1084 #else
   1085   handle_56 (0);
   1086 #endif
   1087 return 0;
   1088 }
   1089 
   1090 int
   1091 gen_57 (void)
   1092 {
   1093 #ifdef SIG57
   1094   kill (getpid (), 57);
   1095 #else
   1096   handle_57 (0);
   1097 #endif
   1098 return 0;
   1099 }
   1100 
   1101 int
   1102 gen_58 (void)
   1103 {
   1104 #ifdef SIG58
   1105   kill (getpid (), 58);
   1106 #else
   1107   handle_58 (0);
   1108 #endif
   1109 return 0;
   1110 }
   1111 
   1112 int
   1113 gen_59 (void)
   1114 {
   1115 #ifdef SIG59
   1116   kill (getpid (), 59);
   1117 #else
   1118   handle_59 (0);
   1119 #endif
   1120 return 0;
   1121 }
   1122 
   1123 int
   1124 gen_60 (void)
   1125 {
   1126 #ifdef SIG60
   1127   kill (getpid (), 60);
   1128 #else
   1129   handle_60 (0);
   1130 #endif
   1131 return 0;
   1132 }
   1133 
   1134 int
   1135 gen_61 (void)
   1136 {
   1137 #ifdef SIG61
   1138   kill (getpid (), 61);
   1139 #else
   1140   handle_61 (0);
   1141 #endif
   1142 return 0;
   1143 }
   1144 
   1145 int
   1146 gen_62 (void)
   1147 {
   1148 #ifdef SIG62
   1149   kill (getpid (), 62);
   1150 #else
   1151   handle_62 (0);
   1152 #endif
   1153 return 0;
   1154 }
   1155 
   1156 int
   1157 gen_63 (void)
   1158 {
   1159 #ifdef SIG63
   1160   kill (getpid (), 63);
   1161 #else
   1162   handle_63 (0);
   1163 #endif
   1164 return 0;
   1165 }
   1166 
   1167 int
   1169 main ()
   1170 {
   1171 #ifdef SIG_SETMASK
   1172   /* Ensure all the signals aren't blocked.
   1173      The environment in which the testsuite is run may have blocked some
   1174      for whatever reason.  */
   1175   {
   1176     sigset_t newset;
   1177     sigemptyset (&newset);
   1178     sigprocmask (SIG_SETMASK, &newset, NULL);
   1179   }
   1180 #endif
   1181 
   1182   /* Signals are ordered ANSI-standard signals first, other signals
   1183      second, with signals in each block ordered by their numerical
   1184      values on a typical POSIX platform.  */
   1185 
   1186   /* SIGINT, SIGILL, SIGABRT, SIGFPE, SIGSEGV and SIGTERM
   1187      are ANSI-standard signals and are always available.  */
   1188   signal (SIGILL, handle_ILL);
   1189   signal (SIGABRT, handle_ABRT);
   1190   signal (SIGFPE, handle_FPE);
   1191   signal (SIGSEGV, handle_SEGV);
   1192   signal (SIGTERM, handle_TERM);
   1193 
   1194   /* All other signals need preprocessor conditionals.  */
   1195 #ifdef SIGHUP
   1196   signal (SIGHUP, handle_HUP);
   1197 #endif
   1198 #ifdef SIGQUIT
   1199   signal (SIGQUIT, handle_QUIT);
   1200 #endif
   1201 #ifdef SIGEMT
   1202   signal (SIGEMT, handle_EMT);
   1203 #endif
   1204 #ifdef SIGBUS
   1205   signal (SIGBUS, handle_BUS);
   1206 #endif
   1207 #ifdef SIGSYS
   1208   signal (SIGSYS, handle_SYS);
   1209 #endif
   1210 #ifdef SIGPIPE
   1211   signal (SIGPIPE, handle_PIPE);
   1212 #endif
   1213 #ifdef SIGALRM
   1214   signal (SIGALRM, handle_ALRM);
   1215 #endif
   1216 #ifdef SIGURG
   1217   signal (SIGURG, handle_URG);
   1218 #endif
   1219 #ifdef SIGTSTP
   1220   signal (SIGTSTP, handle_TSTP);
   1221 #endif
   1222 #ifdef SIGCONT
   1223   signal (SIGCONT, handle_CONT);
   1224 #endif
   1225 #ifdef SIGCHLD
   1226   signal (SIGCHLD, handle_CHLD);
   1227 #endif
   1228 #ifdef SIGTTIN
   1229   signal (SIGTTIN, handle_TTIN);
   1230 #endif
   1231 #ifdef SIGTTOU
   1232   signal (SIGTTOU, handle_TTOU);
   1233 #endif
   1234 #ifdef SIGIO
   1235   signal (SIGIO, handle_IO);
   1236 #endif
   1237 #ifdef SIGXCPU
   1238   signal (SIGXCPU, handle_XCPU);
   1239 #endif
   1240 #ifdef SIGXFSZ
   1241   signal (SIGXFSZ, handle_XFSZ);
   1242 #endif
   1243 #ifdef SIGVTALRM
   1244   signal (SIGVTALRM, handle_VTALRM);
   1245 #endif
   1246 #ifdef SIGPROF
   1247   signal (SIGPROF, handle_PROF);
   1248 #endif
   1249 #ifdef SIGWINCH
   1250   signal (SIGWINCH, handle_WINCH);
   1251 #endif
   1252 #if defined(SIGLOST) && SIGLOST != SIGABRT
   1253   signal (SIGLOST, handle_LOST);
   1254 #endif
   1255 #ifdef SIGUSR1
   1256   signal (SIGUSR1, handle_USR1);
   1257 #endif
   1258 #ifdef SIGUSR2
   1259   signal (SIGUSR2, handle_USR2);
   1260 #endif
   1261 #ifdef SIGPWR
   1262   signal (SIGPWR, handle_PWR);
   1263 #endif
   1264 #if defined (SIGPOLL) && (!defined (SIGIO) || SIGPOLL != SIGIO)
   1265   signal (SIGPOLL, handle_POLL);
   1266 #endif
   1267 #ifdef SIGWIND
   1268   signal (SIGWIND, handle_WIND);
   1269 #endif
   1270 #ifdef SIGPHONE
   1271   signal (SIGPHONE, handle_PHONE);
   1272 #endif
   1273 #ifdef SIGWAITING
   1274   signal (SIGWAITING, handle_WAITING);
   1275 #endif
   1276 #ifdef SIGLWP
   1277   signal (SIGLWP, handle_LWP);
   1278 #endif
   1279 #ifdef SIGDANGER
   1280   signal (SIGDANGER, handle_DANGER);
   1281 #endif
   1282 #ifdef SIGGRANT
   1283   signal (SIGGRANT, handle_GRANT);
   1284 #endif
   1285 #ifdef SIGRETRACT
   1286   signal (SIGRETRACT, handle_RETRACT);
   1287 #endif
   1288 #ifdef SIGMSG
   1289   signal (SIGMSG, handle_MSG);
   1290 #endif
   1291 #ifdef SIGSOUND
   1292   signal (SIGSOUND, handle_SOUND);
   1293 #endif
   1294 #ifdef SIGSAK
   1295   signal (SIGSAK, handle_SAK);
   1296 #endif
   1297 #ifdef SIGPRIO
   1298   signal (SIGPRIO, handle_PRIO);
   1299 #endif
   1300 #ifdef __Lynx__
   1301   /* Lynx doesn't seem to have anything in signal.h for this.  */
   1302   signal (33, handle_33);
   1303   signal (34, handle_34);
   1304   signal (35, handle_35);
   1305   signal (36, handle_36);
   1306   signal (37, handle_37);
   1307   signal (38, handle_38);
   1308   signal (39, handle_39);
   1309   signal (40, handle_40);
   1310   signal (41, handle_41);
   1311   signal (42, handle_42);
   1312   signal (43, handle_43);
   1313   signal (44, handle_44);
   1314   signal (45, handle_45);
   1315   signal (46, handle_46);
   1316   signal (47, handle_47);
   1317   signal (48, handle_48);
   1318   signal (49, handle_49);
   1319   signal (50, handle_50);
   1320   signal (51, handle_51);
   1321   signal (52, handle_52);
   1322   signal (53, handle_53);
   1323   signal (54, handle_54);
   1324   signal (55, handle_55);
   1325   signal (56, handle_56);
   1326   signal (57, handle_57);
   1327   signal (58, handle_58);
   1328   signal (59, handle_59);
   1329   signal (60, handle_60);
   1330   signal (61, handle_61);
   1331   signal (62, handle_62);
   1332   signal (63, handle_63);
   1333 #endif /* lynx */
   1334 
   1335   x = 0;
   1336 
   1337   gen_ABRT ();
   1338   gen_HUP ();
   1339   gen_QUIT ();
   1340   gen_ILL ();
   1341   gen_EMT ();
   1342   gen_FPE ();
   1343   gen_BUS ();
   1344   gen_SEGV ();
   1345   gen_SYS ();
   1346   gen_PIPE ();
   1347   gen_ALRM ();
   1348   gen_URG ();
   1349   gen_TSTP ();
   1350   gen_CONT ();
   1351   gen_CHLD ();
   1352   gen_TTIN ();
   1353   gen_TTOU ();
   1354   gen_IO ();
   1355   gen_XCPU ();
   1356   gen_XFSZ ();
   1357   gen_VTALRM ();
   1358   gen_PROF ();
   1359   gen_WINCH ();
   1360   gen_LOST ();
   1361   gen_USR1 ();
   1362   gen_USR2 ();
   1363   gen_PWR ();
   1364   gen_POLL ();
   1365   gen_WIND ();
   1366   gen_PHONE ();
   1367   gen_WAITING ();
   1368   gen_LWP ();
   1369   gen_DANGER ();
   1370   gen_GRANT ();
   1371   gen_RETRACT ();
   1372   gen_MSG ();
   1373   gen_SOUND ();
   1374   gen_SAK ();
   1375   gen_PRIO ();
   1376   gen_33 ();
   1377   gen_34 ();
   1378   gen_35 ();
   1379   gen_36 ();
   1380   gen_37 ();
   1381   gen_38 ();
   1382   gen_39 ();
   1383   gen_40 ();
   1384   gen_41 ();
   1385   gen_42 ();
   1386   gen_43 ();
   1387   gen_44 ();
   1388   gen_45 ();
   1389   gen_46 ();
   1390   gen_47 ();
   1391   gen_48 ();
   1392   gen_49 ();
   1393   gen_50 ();
   1394   gen_51 ();
   1395   gen_52 ();
   1396   gen_53 ();
   1397   gen_54 ();
   1398   gen_55 ();
   1399   gen_56 ();
   1400   gen_57 ();
   1401   gen_58 ();
   1402   gen_59 ();
   1403   gen_60 ();
   1404   gen_61 ();
   1405   gen_62 ();
   1406   gen_63 ();
   1407   gen_TERM ();
   1408 
   1409   return 0;	/* end of main */
   1410 }
   1411