|
@@ -1519,11 +1519,11 @@ statements are true:
|
|
- A and X are nodes from the same ASTContext.
|
|
- A and X are nodes from the same ASTContext.
|
|
- B and Y are nodes from the same ASTContext.
|
|
- B and Y are nodes from the same ASTContext.
|
|
- A and B may or may not be from the same ASTContext.
|
|
- A and B may or may not be from the same ASTContext.
|
|
-- if A == X (pointer equivalency) then (there is a cycle during the traverse)
|
|
|
|
|
|
+- if A == X and B == Y (pointer equivalency) then (there is a cycle during the
|
|
|
|
+ traverse)
|
|
|
|
|
|
- A and B are structurally equivalent if and only if
|
|
- A and B are structurally equivalent if and only if
|
|
|
|
|
|
- - B and Y are part of the same redeclaration chain,
|
|
|
|
- All dependent nodes on the path from <A,B> to <X,Y> are structurally
|
|
- All dependent nodes on the path from <A,B> to <X,Y> are structurally
|
|
equivalent.
|
|
equivalent.
|
|
|
|
|
|
@@ -1563,15 +1563,6 @@ the whole redeclaration chain of the function. The most recent version of the
|
|
declarations - regardless if they are definitions or prototypes - in the order
|
|
declarations - regardless if they are definitions or prototypes - in the order
|
|
as they appear in the "from" context.
|
|
as they appear in the "from" context.
|
|
|
|
|
|
-.. Structural eq requires proper redecl chains
|
|
|
|
-
|
|
|
|
-Another reason why we must maintain and import redeclaration chains properly is
|
|
|
|
-that the :ref:`Structural Equivalency <structural-eq>` check would report false
|
|
|
|
-positive in-equivalencies otherwise. We must not allow having two (or more)
|
|
|
|
-independent redeclaration chains of structurally equivalent declarations.
|
|
|
|
-Structural equivalency identifies the chains with the canonical declaration,
|
|
|
|
-that becomes different for independent chains.
|
|
|
|
-
|
|
|
|
.. One definition
|
|
.. One definition
|
|
|
|
|
|
If we have an existing definition in the "to" context, then we cannot import
|
|
If we have an existing definition in the "to" context, then we cannot import
|