IBM Support

IV47945: INCORRECT WARNING FOR "RESTRICT" WITH TYPEDEF

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When declaring a pointer as restrict through more than one
    level of typedef, the parser incorrectly believes the
    underlying type is not a pointer and issues the warning
    1540-2606.
    
    ===== TESTCASE:
    $cat xlc12_defect_restricttypedef.cpp
    
    typedef signed * signed_ptr;
    typedef signed_ptr key_type;
    
    void func01(signed * __restrict__ p);   //========>OK
    void func02(signed_ptr __restrict__ p); //========>OK
    void func03(key_type __restrict__ p);   //========>BAD!!
    
    xlC -q'sourcetype=c++' xlc12_defect_restricttypedef.cpp -c
    "xlc12_defect_restricttypedef.cpp", line 13.6: 1540-2606 (W)
    "restrict" can only qualify a pointer or reference type.  The
    "restrict" keyword is ignored.
    
    C compiler behavior is correct which compiles the file clean.
    

Local fix

  • Avoid multiple level of typedef. This is only a warning and
    does not stop compilation.
    

Problem summary

  • PROBLEM DESCRIPTION: Multiple typedef is hiding the restrict
    attribute from the error checking.
    
    USERS AFFECTED: All users using multiple typedefs on restrict
    

Problem conclusion

  • The issue has been solved.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV47945

  • Reported component name

    XL C/C++ FOR AI

  • Reported component ID

    5725C7200

  • Reported release

    C10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-09-05

  • Closed date

    2013-12-13

  • Last modified date

    2013-12-13

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

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

    LI77710

Fix information

  • Fixed component name

    XL C/C++ FOR AI

  • Fixed component ID

    5725C7200

Applicable component levels

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

Document Information

Modified date:
03 October 2021