Skip to main content

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

Copyright and trademark information

IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.

Rate this page:


(0 users)Average rating

Add comments

Document information

XL C/C++ for Blue Gene/Q

Compiler


Software version:
12.1


Reference #:
LI76851


Modified date:
2012-11-23

Translate my page

Content navigation