From: Gabor Marton Date: Mon, 7 Oct 2019 11:15:18 +0000 (+0000) Subject: [ASTImporter][NFC] Update ASTImporter internals docs X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d263b49d0259c62caa93e2e6b82d04d87d1baae9;p=clang [ASTImporter][NFC] Update ASTImporter internals docs git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@373895 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/InternalsManual.rst b/docs/InternalsManual.rst index 59f3cba699..409432efcf 100644 --- a/docs/InternalsManual.rst +++ b/docs/InternalsManual.rst @@ -1519,11 +1519,11 @@ statements are true: - A and X 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. -- 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 - - B and Y are part of the same redeclaration chain, - All dependent nodes on the path from to are structurally 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 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 ` 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 If we have an existing definition in the "to" context, then we cannot import