LI77168: UNNECESSARY OMP FOR-LOOP CANONICAL FORM CHECK

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • Compiling C code containing an OMP for loop pragma statement
    with nested for loops is performing an unnecessary canonical
    form check, resulting in invalid error messages.  An internal
    compiler error may also be seen with subsequent nested for
    loops.
    
    
         ===== TEST CASE =====
    
    // xlc_r -qsmp=omp -c test.c
    void a();
    int b();
    void c();
    
    void test()
    {
     for(int j=0; j<10; j++)
     {
      _Pragma("omp for collapse(1)")
      for(int i=0; i<10; i++) { }
     }
    
     for (a(); !b(); c())
     {
      long int  x=0;
      long int  y=0;
      long int const z=0;
    
      for (long int n = x; n < y; n += z) {}
     }
    }
    
    
         ===== ERROR =====
    
    Linux / BG/Q Platforms:
    
    "test.c", line 13.14: 1506-817 (S) Init expression of the for
    loop is not in the canonical form.
    "test.c", line 13.19: 1506-818 (S) Controlling expression of the
    for loop is not in the canonical form.
    "test.c", line 13.25: 1506-819 (S) Re-init expression of the for
    loop is not in the canonical form.
    xlc_r: 1501-224 (S) fatal error in
    /opt/ibmcmp/vac/bg/12.1/exe/xlcentry
    
    
    AIX Platform:
    
    "test.c", line 13.14: 1506-817 (S) Init expression of the for
    loop is not in the canonical form.
    "test.c", line 13.19: 1506-818 (S) Controlling expression of
    the for loop is not in the canonical form.
    "test.c", line 13.25: 1506-819 (S) Re-init expression of the
    for loop is not in the canonical form.
    xlc_r: 1501-230 (S) Internal compiler error; please contact your
    Service Representative. For more information visit:
    http://www.ibm.com/support/docview.wss?uid=swg21110810
    

Local fix

  • Remove OMP pragma, or remove -qsmp=omp option.
    

Problem summary

  • PROBLEM DESCRIPTION:
    The incorrect scope is used by the compiler for the collapse(1)
    set by the pragma omp for.
    
    USERS AFFECTED:
    Using omp for collapse(#) pragmas.
    

Problem conclusion

  • The scope for the 'omp for collapse(1)' is now correctly
    allocated, and the issue is resolved.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI77168

  • 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

    2013-01-24

  • Closed date

    2013-05-29

  • Last modified date

    2013-05-29

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

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

    IV44261 LI77568

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

Add comments

Document information


More support for:

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

Software version:

12.1

Reference #:

LI77168

Modified date:

2013-05-29

Translate my page

Machine Translation

Content navigation