IBM Support

IJ08116: COMPILER GENERATES SPURIOUS .LST FILES WHEN COMPILING

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

APAR status

  • Closed as program error.

Error description

  • The compiler produces a .lst file when its not asked for.
    
    ===== COMPILE COMMAND:
    rm -f foo.lst ; xlc_r -O -c foo.c ; ls foo.lst
    
    
    
    ===== TESTCASE:
    $ cat foo.c
    #include <stdlib.h>
    
    int ismul5(unsigned char x)
    {
            return (unsigned char)(x * 0xcd) <= 0x33;
    }
    
    unsigned char div5exact(unsigned char x)
    {
            return x * 0xcd;
    }
    
    int ismul10(unsigned char *phi, unsigned char *plo)
    {
            unsigned char hi = *phi, lo = *plo;
            if (lo & 1) return 0;
            lo = hi << 7 | lo >> 1, hi >>= 1;
            if (!ismul5(hi + lo + ((unsigned char)(hi + lo) < hi)))
    return 0;
            *phi = hi / 5; hi %= 5;
            *plo = hi * 0x33 + div5exact(hi + lo);
            return 1;
    }
    
    int main()
    {
            for (unsigned i = 0; i < 0x10000; i++)
            {
                    unsigned char hi = i >> 8, lo = i;
                    int r = ismul10(&hi, &lo);
                    if (r != (i % 10 == 0)) abort();
                    if (r)
                    {
                            if (hi != (i / 10) >> 8) abort();
                            if (lo != ((i / 10) & 0xff)) abort();
                    }
                    else
                    {
                            if (hi != i >> 8) abort();
                            if (lo != (i & 0xff)) abort();
                    }
            }
            return 0;
    }
    $
    
    
    
    
    ===== ACTUAL OUTPUT:
    $ rm -f foo.lst ; xlc_r -O -c foo.c ; ls foo.lst
    foo.lst
    $
    
    
    
    ===== EXPECTED OUTPUT:
    $ rm -f foo.lst ; xlc_r -O -c foo.c ; ls foo.lst
    foo.lst not found
    $
    

Local fix

  • N/A
    

Problem summary

  • USERS AFFECTED:
    Clients who compile with V13.1.3.4 and optimization maybe
    affected by this issue.
    
    PROBLEM DESCRIPTION:
    The compiler was generating additonal listing files when it was
    not asked for due to some debug code being present.
    

Problem conclusion

  • The compiler has been fixed to avoid generating those .lst
    files.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IJ08116

  • Reported component name

    XL C/C++ FOR AI

  • Reported component ID

    5725C7200

  • Reported release

    D13

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-08-01

  • Closed date

    2018-08-01

  • Last modified date

    2018-08-01

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

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

Fix information

  • Fixed component name

    XL C FOR AIX

  • Fixed component ID

    5725C7100

Applicable component levels



Document information

More support for: XL C for AIX
Compiler

Software version: D13

Reference #: IJ08116

Modified date: 01 August 2018