IBM Support

PI81776: CPP_CG::CLASS::DEPENDENCIESAUTOARRANGE MOVES FORWARD DECLARATIONTO UNEXPECTED POSITION IN SOURCE FILE CAUSING COMPILER ERROR

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • With Rhapsody version 8.2, when the
    CPP_CG::Class::DependenciesAutoArrange property is set to false
    on a package, the
    #include statements from usage dependencies in the code are
    generated after the class forward declarations.  If a #include
    is needed to
    support the class forward declaration, then this can cause the
    code to not compile.  We believe that #include statements should
    come first,
    followed by class forward declarations, followed by variables in
    the package.
    
    Workaround is to use Code Respect and drag/drop the code to the
    expected position. See attached model.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Rhapsody                                                     *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * CPP_CG::Class::DependenciesAutoArrange moves forward         *
    * declaration to unexpected position in source file causing    *
    * compiler error                                               *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    

Problem conclusion

  • code don't compile because of the dependency order in
    implementation.
    the actual problem is not  order between forward declarations
    and includes
    (when the property CPP_CG::Class::DependenciesAutoArrange is
    false this is the correct behavior), but the order between
    implicit and explicit dependencies
    problem can be solve with property
    CG::Class::ImplicitDependenciesAboveUserDependencies set to
    False.
    note: this is  not new property it can be used from Rhapsody
    8.0.3 if added to the model (via site.prp ).
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI81776

  • Reported component name

    TLOGIC RHAPSODY

  • Reported component ID

    5724V74RP

  • Reported release

    820

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-05-17

  • Closed date

    2017-12-04

  • Last modified date

    2017-12-04

  • 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

    TLOGIC RHAPSODY

  • Fixed component ID

    5724V74RP

Applicable component levels

  • R820 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SS7P9W","label":"Rational Rhapsody"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"820","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Document Information

Modified date:
19 October 2021