IBM Support

PM41492: Avoid forward declaration on Usage for Implementation

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • In a model, on adding a ??Usage?? dependency from class B to
    class A, and setting it to 'Implementation' usage, should add a
    #include 'A.h' to the implementation file for class B. It does,
    however, it also adds a forward declaration of class A to the
    specification file of class B. This should not happen and it
    causes problems.Only Want the Usage dependency to generate the
    #include in the implementation file,And not to create a forward
    declaration.Unchecking the property
    'CG:Configuration:GenerateForwardDeclarations',which overrides
    the CG:Dependency:UsageType does not help. Neither the WA of
    Creating a new stereotype (NoForwardDec) applicable to 'Class'
    and deselecting the 'GenerateForwardDeclarations' property.
    Further applying the stereotype to any class to stop the
    redundant forward declarations, also dont help.Because, Its the
    use/include of a class that is causing the forward
    declaration,not the class itself.Also, the scenario of using
    class B by implementation/#include in one place and in another
    place using the same class B by forward reference.So cannot turn
    off forward reference for class B.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    When Usage is set to Implementation, a forward declaration
    is still generated in the specification file.
    

Problem conclusion

  • The property GenerateForwardDeclarations now exists under
    CPP_CG::Dependency. You can set the value of this property
    to False, and the forward declaration will not be generated
    for the dependency.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM41492

  • Reported component name

    TLOGIC RHAPSODY

  • Reported component ID

    5724V74RP

  • Reported release

    753

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-06-14

  • Closed date

    2012-09-27

  • Last modified date

    2012-09-27

  • 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

  • R753 PSN

       UP



Document information

More support for: Rational Rhapsody

Software version: 7.5.3

Reference #: PM41492

Modified date: 27 September 2012