IBM Support

LI75760: COMPILER ERROR AND WRONG OUTPUT WITH -QARCH

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When compiling the following test case with optimization and
    specifying an architecture setting with -qarch, the compiler is
    encountering an internal error with -O2 and outputting incorrect
    results with the generated binary at -O3.
    
    
       ===== TEST CASE =====
    
    xlc archbug.c -q64 -O2 -qarch=pwr4   <-- Internal Compiler Error
    xlc archbug.c -q64 -O3 -qarch=pwr4   <-- Incorrect result
    
    int two = 2;
    double val[] = {1, 2};
    
    int main(void)
    {
       int  sfirst, i;
       long n, m;
    
       sfirst = 1;
       for (i = 0; i < two; i++)
             if (sfirst)
                { n = val[i]; sfirst = 0; }
             else
                  m = val[i];
    
       if (val[0] == n && val[1] == m)
          printf("Good!\n");
       else
          printf("Bad!\n");
    
       return 0;
    }
    

Local fix

  • Do not use -qarch with affected source code.
    

Problem summary

  • PROBLEM DESCRIPTION:
    While converting an int to float, the compiler is using the
    incorrect source.
    
    USERS AFFECTED:
    Customers using -qarch settings that make use of the PowerPC
    graphics instructions.
    

Problem conclusion

  • The graphics_cvt was corrected and the issue no longer occurs.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI75760

  • Reported component name

    XL C/C++ FOR LI

  • Reported component ID

    5724X1400

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2010-11-24

  • Closed date

    2010-11-24

  • Last modified date

    2010-11-24

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

    IZ79546

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

Fix information

  • Fixed component name

    XL C/C++ FOR LI

  • Fixed component ID

    5724X1400

Applicable component levels

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSXVZZ","label":"XL C\/C++ for Linux"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"B10","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
15 October 2021