IBM Support

IV23063: 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

    IV23063

  • Reported component name

    XL C FOR AIX

  • Reported component ID

    5724X1200

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-06-14

  • Closed date

    2012-10-03

  • Last modified date

    2012-10-03

  • APAR is sysrouted FROM one or more of the following:

    LI76851

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    XL C FOR AIX

  • Fixed component ID

    5724X1200

Applicable component levels

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGH2K","label":"XL C for AIX"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"11.1","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
03 October 2012