forked from OSchip/llvm-project
686b2319e5
rather than individually on behalf of each ASTContext. This allows the ASTImporter to know about all containers of types, which will let it be smarter about forwarding information about type origins. That means that the following sequence of steps will be possible (after a few more changes): - Import a type from a Module's ASTContext into an expression parser ASTContext, tracking its origin information -- this works now. - Because the result of the expression uses that type, import it from the expression parser ASTContext into the Target's scratch AST context, forwarding the origin information -- this needs to be added. - For a later expression that uses the result, import the type from the Target's scratch AST context, still forwarding origin information -- this also needs to be added. - Use the intact origin information to complete the type as needed -- this works now if the origin information is present. To this end, I made the following changes: - ASTImporter top-level copy functions now require both a source and a destination AST context parameter. - The ASTImporter now knows how to purge records related to an ASTContext that is going away. - The Target now owns and creates the ASTImporter whenever the main executable changes or (in the absence of a main executable) on demand. llvm-svn: 144802 |
||
---|---|---|
.. | ||
ASTDumper.cpp | ||
ASTResultSynthesizer.cpp | ||
ASTStructExtractor.cpp | ||
ClangASTSource.cpp | ||
ClangExpressionDeclMap.cpp | ||
ClangExpressionParser.cpp | ||
ClangExpressionVariable.cpp | ||
ClangFunction.cpp | ||
ClangPersistentVariables.cpp | ||
ClangUserExpression.cpp | ||
ClangUtilityFunction.cpp | ||
DWARFExpression.cpp | ||
ExpressionSourceCode.cpp | ||
IRDynamicChecks.cpp | ||
IRForTarget.cpp | ||
IRInterpreter.cpp | ||
Makefile | ||
ProcessDataAllocator.cpp | ||
RecordingMemoryManager.cpp |