Skip to content

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

ROSE_VisitTraversal

Member Functions

Name

Description

~TestFirstNondefiningDeclarationsForForwardMarking [destructor] [virtual]

Destructor

visit [virtual]

Static Member Functions

Name

Description

test

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