HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 0120 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 0120.


Report 0120 Actions


    Problem Report Number 0120
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0120
    Raised 1993-11-15 08:00
    Updated 2003-03-13 08:00
    Published 1993-11-19 08:00
    Product Standard Internationalised System Calls and Libraries (XPG4)
    Certification Program The Open Brand certification program
    Test Suite VSX4 version 4.2.4
    Test Identification XOPEN.os/maths/y0andXPG4.hdr/misc/float/
    Linked Problem Reports PG3.590, (in, old, system)
    Problem Summary TSD4.120 Each of these tests has the following in common: The mlmachar() function has previously set the signal action for the SIGFPE signal to SIG_IGN. A floating point exception occurs, which generates a SIG...
    Problem Text
    Each of these tests has the following in common: The mlmachar()
    function has previously set the signal action for the SIGFPE signal
    to SIG_IGN. A floating point exception occurs, which generates a
    SIGFPE signal. Since the action for SIGFPE is SIG_IGN, the process
    ignores the signal. After the signal is ignored, our implementation
    forces a SIGFPE signal to be delivered.

    XSH4 page 378 states: "The behaviour of a process is undefined after
    it ignores a SIGFPE, SIGILL, or SIGSEGV signal that was not generated
    by the kill() function or the raise() function." XPG4 does not
    specify what happens after a process ignores a SIGFPE signal which
    was generated by a floating point exception. VSX assumes nothing
    will happen and the test will continue on its way. However, our
    implementation chose to force delivery of a SIGFPE signal, and XPG4
    allows this. By the way, our implementation does not force delivery
    of a SIGFPE signal when the SIGFPE was generated by a call to kill()
    or raise().

    When the signal action for the SIGFPE signal is changed from SIG_IGN
    to a pointer to a signal catching function, the floating point
    exception causes the signal catching function to be executed, and the
    test continues as expected by VSX. Most applications will not ignore
    a floating point exception because any resulting calculations are not
    reliable. It is better to catch the floating point exception, and
    take appropriate action.

    The VSX code is not portable because it depends on undefined behavior.
    For this reason, either a permanent waiver or permission to alter VSX
    is requested. Here are the suggested changes to the file
    SRC/INC/FPCOMP.h:

    1. Define a do-nothing signal catching function.
    2. Change the signal action for the SIGFPE signal from SIG_IGN to
    the address of the new signal catching function.

    Here is the diff output between the original file and the file with
    my changes:

    148a149,155
    > static void
    > ignore_fpe(sig)
    > int sig;
    > {
    > return;
    > }
    >
    177c184
    < new.sa_handler = SIG_IGN;
    ---
    > new.sa_handler = ignore_fpe;

    With these changes, the above tests compile and run successfully on
    our implementation. By the way, XPG3 waiver PG3.590 was granted to
    us for this same problem.
    Test Output
    /tset/XOPEN.os/maths/y0/T.y0 10 Unresolved

    Test Description:
    When the result would overflow (due to the argument being too small),
    y1() returns either -HUGE_VAL or zero, and may set errno to ERANGE.
    This test is not executed in XPG3 mode.

    Test Information:
    child process was terminated by signal 8 (SIGFPE)
    ************************************************************************
    /tset/XOPEN.os/maths/y0/T.y0 11 Unresolved

    Test Description:
    When the result would overflow (due to the argument being too small),
    yn() returns either -HUGE_VAL or zero, and may set errno to ERANGE.
    This test is not executed in XPG3 mode.

    Test Information:
    child process was terminated by signal 8 (SIGFPE)
    ************************************************************************
    /tset/XPG4.hdr/misc/float/T.float 4 Unresolved

    Test Description:
    When the values for the following symbolic names can be determined
    arithmetically, then the symbolic names evaluate to the same value:
    FLT_DIG, DBL_DIG, LDBL_DIG, FLT_MIN_EXP, DBL_MIN_EXP, LDBL_MIN_EXP,
    FLT_MIN_10_EXP, DBL_MIN_10_EXP, LDBL_MIN_10_EXP, FLT_MAX_EXP,
    DBL_MAX_EXP, LDBL_MAX_EXP, FLT_MAX_10_EXP, DBL_MAX_10_EXP,
    LDBL_MAX_10_EXP, FLT_MAX, DBL_MAX, LDBL_MAX, FLT_EPSILON, DBL_EPSILON,
    LDBL_EPSILON, FLT_MANT_DIG, DBL_MANT_DIG, LDBL_MANT_DIG, FLT_MIN,
    DBL_MIN, LDBL_MIN and FLT_RADIX.

    Test Information:
    child process was terminated by signal 8 (SIGFPE)
    Feature test macros: -D_XOPEN_SOURCE
    Test returned unexpected exit code -1
    child process was terminated by signal 8 (SIGFPE)
    Feature test macros: -D_XOPEN_SOURCE -D_POSIX_SOURCE
    Test returned unexpected exit code -1
    child process was terminated by signal 8 (SIGFPE)
    Feature test macros: -D_XOPEN_SOURCE -D_POSIX_C_SOURCE=1
    Test returned unexpected exit code -1
    child process was terminated by signal 8 (SIGFPE)
    Feature test macros: -D_XOPEN_SOURCE -D_POSIX_C_SOURCE=2
    Test returned unexpected exit code -1
    child process was terminated by signal 8 (SIGFPE)
    Feature test macros: -D_XOPEN_SOURCE -D_POSIX_SOURCE -D_POSIX_C_SOURCE=1
    Test returned unexpected exit code -1
    child process was terminated by signal 8 (SIGFPE)
    Feature test macros: -D_XOPEN_SOURCE -D_POSIX_SOURCE -D_POSIX_C_SOURCE=2
    Test returned unexpected exit code -1

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    The requested interpretation for XOPEN.os/maths/y0 test11 is covered by
    TSD4.070.
    The requested interpretation for XPG4.hdr/misc/float test4 is accepted as
    a test suite deficiency.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Test Suite Deficiency (TSD)
    Review Conclusion
    Please refer to TSD4.070 for XOPEN.os/maths/y0 11.
    The request for XPG4.hdr/misc/float 4 is an agreed Test Suite Deficiency.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority