aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CodeGen.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/CodeGen.cc')
-rw-r--r--lib/CodeGen/CodeGen.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/CodeGen/CodeGen.cc b/lib/CodeGen/CodeGen.cc
index 6c6f682..b793657 100644
--- a/lib/CodeGen/CodeGen.cc
+++ b/lib/CodeGen/CodeGen.cc
@@ -117,7 +117,7 @@ void CodeGen::registerSymbol(const std::string &Name,
Value *Storage,
const std::string &TypeName,
bool IsArray) {
- Symbols[Name] = {Storage, TypeName, IsArray};
+ Symbols[Name] = {Storage, TypeName, IsArray, nullptr, ConstantScopes.back().ID};
}
const SymbolInfo *CodeGen::getSymbolInfo(const std::string &Name) const {
@@ -243,6 +243,7 @@ bool CodeGen::marshalCallArgs(const std::string &Callee,
reportError("Unknown variable %s in BYREF call", Var->getName().c_str());
return false;
}
+ if (!requireWritable(*Info, Var->getName())) return false;
// BYREF aliases the storage, so the types must match exactly.
if (!Types->sameType(Info->TypeName, TypeName)) {
reportError("BYREF argument %s to %s must be of type %s (got %s)",