IBM Support

IZ51687: ISSUES WITH 64 BIT ADD OPERATION AT -O2

Fixes are available

May 2009 PTF for XL C for AIX, V10.1
November 2009 PTF for XL C/C++ for AIX, V10.1
October 2010 PTF for XL C/C++ for AIX, V10.1
October 2010 PTF for XL C for AIX, V10.1
May 2012 PTF for XL C/C++ for AIX, V10.1
January 2013 PTF for XL C for AIX, V10.1
January 2013 PTF for XL C/C++ for AIX, V10.1
XL C/C++ for AIX Fix Pack 18 (July 2013 PTF) for 10.1
XL C/C++ for AIX Fix Pack 19 (October 2013 PTF) for 10.1
XL C/C++ for AIX Fix Pack 21 (October 2015 PTF) for 10.1
XL C for AIX Fix Pack 21 (October 2015 PTF) for 10.1
August 2009 PTF for XL C for AIX, V10.1
August 2009 PTF for XL C/C++ for AIX, V10.1
November 2009 PTF for XL C for AIX, V10.1
March 2010 PTF for XL C for AIX, V10.1
March 2010 PTF for XL C/C++ for AIX, V10.1
April 2010 PTF for XL C for AIX, V10.1
April 2010 PTF for XL C/C++ for AIX, V10.1
June 2010 PTF for XL C/C++ for AIX, V10.1
June 2010 PTF for XL C for AIX, V10.1
February 2011 PTF for XL C for AIX, V10.1
May 2011 PTF for XL C/C++ for AIX, V10.1
May 2011 PTF for XL C for AIX, V10.1
October 2011 PTF for XL C/C++ for AIX, V10.1
October 2011 PTF for XL C for AIX, V10.1
February 2012 PTF for XL C for AIX, V10.1
February 2012 PTF for XL C/C++ for AIX, V10.1
May 2012 PTF for XL C for AIX, V10.1
September 2012 PTF for XL C for AIX, V10.1
September 2012 PTF for XL C/C++ for AIX, V10.1
XL C for AIX Fix Pack 18 (July 2013 PTF) for 10.1
XL C for AIX Fix Pack 19 (October 2013 PTF) for 10.1
May 2009 PTF for XL C/C++ for AIX, V10.1
XL C for AIX Fix Pack 20 (October 2014 PTF) for 10.1
XL C/C++ for AIX Fix Pack 20 (October 2014 PTF) for 10.1

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The following test case abends at runtime when compiled with the
    following options:
    
    /* compile with xlc -q64 -O */
    
    int index[10];
    int n = 10;
    int forward=0;
    
    main () {
      int i, start, end, step;
      if (forward)
      {
        start=0; end=10; step=1;
      } else {
        start=n-1; end=-1; step=-1;
      }
      for (i=start; i != end; i+=step)
        index[(unsigned int) i] = i;
    }
    

Local fix

  • Using the type 'long' instead of 'int' for the variables in 64
    bit will help work around this issue.
    

Problem summary

  • Users using -q64 and -O2 and higher with
    certain loops with 'int' loop indicies and runtime
    computed bounds (not contants) maybe affected by this issue.
    
    The compiler generates incorrect code that
    will often lead to a SEGV.  The problem is in the
    'Reassociation' optimization when zero extension is being done.
    

Problem conclusion

  • Fixed reassociation to be smarter when
    zero extension is being done.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IZ51687

  • Reported component name

    XL C AIX

  • Reported component ID

    5724U8000

  • Reported release

    A10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-05-21

  • Closed date

    2009-05-21

  • Last modified date

    2009-06-03

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

    IZ45789

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

    LI74771

Fix information

  • Fixed component name

    XL C AIX

  • Fixed component ID

    5724U8000

Applicable component levels

[{"Line of Business":{"code":"LOB08","label":"Cognitive Systems"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSJT9L","label":"XL C\/C++"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"A.1"}]

Document Information

Modified date:
04 October 2021