Split external identifier access into resolving and code generation.

This commit is contained in:
chriseth
2017-04-25 16:49:03 +02:00
committed by chriseth
parent 5d6747eb32
commit e0849f2f3b
9 changed files with 189 additions and 144 deletions
+8 -2
View File
@@ -117,8 +117,14 @@ struct Identifier; // forward
struct InlineAssemblyAnnotation: StatementAnnotation
{
/// Mapping containing resolved references to external identifiers.
std::map<assembly::Identifier const*, Declaration const*> externalReferences;
struct ExternalIdentifierInfo
{
Declaration const* declaration = nullptr;
size_t valueSize = size_t(-1);
};
/// Mapping containing resolved references to external identifiers and their value size
std::map<assembly::Identifier const*, ExternalIdentifierInfo> externalReferences;
};
struct ReturnAnnotation: StatementAnnotation