LI76851: OMP PARALLEL ERROR FROM C99 VARIABLE USAGE

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • When compiling an OMP for loop with mismatched loop counter
    datatypes, the OMP syntax check is being too strict and
    outputing an error.
    
    
        ===== TEST CASE =====
    
    int main()
    {
            long var=0;
            #pragma omp parallel for schedule(static)
            for(int i1=0; i1<var; i1++) {}
    }
    
    $ xlc_r reduce.c -qsmp=omp -q64
    "reduce.c", line 5.23: 1506-818 (S) Controlling expression of
    the for loop is not in the canonical form.
    

Local fix

  • Move the loop counter variable declaration outside of the for
    loop.  This will change the variable promotion rules and work
    around the issue.
    

Problem summary

  • PROBLEM DESCRIPTION:
    The compiler is issuing a severe error for a 'for' loop not in
    OMP canonical form when using -q64, but the C standard allows
    it.
    
    USERS AFFECTED:
    Users using different integral types and sign with loop
    variable in a 'for' loop at 64bit.
    

Problem conclusion

  • Confirmed that the OMP form should not be more restrictive than
    the C standard.  The check was relaxed, and mixed integral
    types are now allowed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI76851

  • Reported component name

    XL C/C++ FOR BG

  • Reported component ID

    5799AG100

  • Reported release

    C10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-06-14

  • Closed date

    2012-11-23

  • Last modified date

    2012-11-23

Fix information

  • Fixed component name

    XL C/C++ FOR BG

  • Fixed component ID

    5799AG100

Applicable component levels

  • RC10 PSY

       UP



Rate this page:

(0 users)Average rating

Document information


More support for:

XL C/C++ for Blue Gene/Q
Compiler

Software version:

12.1

Reference #:

LI76851

Modified date:

2012-11-23

Translate my page

Machine Translation

Content navigation