TestFirstNondefiningDeclarationsForForwardMarking
This tests the first non‐defining, referenced from each declaration, to make sure that it is not a forward declaration (a non‐defining declaration marked to be a forward declaration).
Synopsis
Declared in <src/midend/astDiagnostics/AstConsistencyTests.h>
class TestFirstNondefiningDeclarationsForForwardMarking
: public ROSE_VisitTraversal
Base Classes
Name |
Description |
|
Member Functions
Name |
Description |
|
Destructor |
|
Static Member Functions
Name |
Description |
static function to do test on any IR node |
Description
This is an issue specific to name qualification. For functions,
there are different types of non-defining declarations. Those marked forward
are represented in the AST traversal (the AST as defined by the traversal)
and cannot be shared, while those marked as non-forward are sharable
non-defining declarations. Even the forward non-defining declarations are
not all the same (non created equal) since those appearing in scopes where
the associated defining declaration could be placed are \bstronger and force
name qualification to be used subsequently (those appearing before this
stronger sort fo forward declaration are not allowed to have name
qualification. This behavior is most dramatic for functions, but applied in
what seems to be a slightly reduced form to classes and structs. This needs
to be tested!
Created with MrDocs