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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 2467 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 2467.


Report 2467 Actions


    Problem Report Number 2467
    Submitter's Classification Minor System Fault
    State Resolved
    Resolution Minor System Fault (MSF)
    Problem Resolution ID MSF.X.0098
    Raised 2005-07-16 01:26
    Updated 2005-07-20 21:50
    Published 2005-07-20 21:50
    Expiry Date 2006-07-21
    Product Standard C Language V2 (UNIX 03)
    Certification Program The Open Brand certification program
    Test Suite Plum Hall version cvs05a
    Test Identification n07073
    Specification ISO/IEC 9899:1999
    Location in Spec C99 6.7.4 SYNTAX-MANDATORY
    Problem Summary Missing diagnostic in Plum Hall test n07073
    Problem Text The test program is supposed to generate a warning. On our platform it
    doesn't and we will
    fix it in the next official release.
    Test Output --- n07073: NO DIAGNOSTICS IN OUTPUT
    INPUT PROGRAM WAS...
    /* #073 C99 6.7.4 SYNTAX-MANDATORY */
    /* not contain a reference to an identifier with internal */
    static int i = 9;
    inline int f() {
    return i;
    }
    int main() {
    return f(); }

    Review Information

    Review Type SA Review
    Start Date 2005-07-16 01:26
    Last Updated 2005-07-20 20:39
    Completed 2005-07-20 20:39
    Status Complete
    Review Resolution Minor System Fault (MSF)
    Review Conclusion A minor system fault is granted.

    The Consultant reports that:-

    The C99 standard requires (at least) a warning message for this
    situation. As I recall the discussion in WG14, the issue is as
    follows: A programmer could write code such as ...

    fa.c_____________
    #include "f.h"
    int fa() {
    return f();
    }

    fb.c_____________
    #include "f.h"
    int fb() {
    return f();
    }

    f.h______
    static int count=0;
    inline f() {
    return count++;
    }

    If C99 permitted this without warnings or errors, C99 programmers
    would come to regard it as a "feature" of C99, that each source file
    gets its own copy of any file-scope statics that are used in inline
    functions. But this would be incompatible with C++, where the "one-
    definition-rule" requires that all the references to count must
    refer to the same object. However, WG14 did not wish to require all
    the linker support that C++ requires, so the construct requires a
    diagnostic. Ultimately, the diagnostic is required for "C++
    compatibility". For the purposes of The Open Group, I would regard
    that as a "minor" issue.

    Since C++ is (currently) beyond the scope of the Open Group branding,
    this is not regarded a "portability" problem and an MSF is granted.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority