diff options
Diffstat (limited to 'lib/CodeGen/ConstantGen.cc')
| -rw-r--r-- | lib/CodeGen/ConstantGen.cc | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/lib/CodeGen/ConstantGen.cc b/lib/CodeGen/ConstantGen.cc index a512490..66919d2 100644 --- a/lib/CodeGen/ConstantGen.cc +++ b/lib/CodeGen/ConstantGen.cc @@ -64,31 +64,8 @@ void CodeGen::emitConstantStmt(ConstantStmtAST *Stmt) { return; } if (!prepareSymbolDeclaration(Name, true)) return; - auto Existing = StringConstants.find(Stmt); - if (Existing != StringConstants.end()) { - Symbols[Name] = Existing->second; - return; - } const TypeInfo *Type = getExprTypeInfo(Stmt->getValue()); Value *Val = emitExpr(Stmt->getValue()); - if (Type && Type->isString() && Val) { - Value *Storage; - bool TopLevel = ConstantScopes.back().ID == 0; - if (TopLevel) { - Storage = new GlobalVariable(*TheModule, Type->LLVMType, false, - GlobalValue::InternalLinkage, Types->getZeroValue(Type->Name), "__cps_constant." + Name); - } else { - Storage = CreateEntryBlockAlloca(Builder->GetInsertBlock()->getParent(), Type->LLVMType, Name); - } - size_t Lifetime = registerStackObject(Storage, Type->Name, DiagnosticLine); - Builder->CreateStore(Val, Storage); - activateStackObject(Lifetime); - SymbolInfo Info{Storage, Type->Name, false, nullptr, ConstantScopes.back().ID}; - Info.ReadOnly = true; - Symbols[Name] = Info; - if (TopLevel) StringConstants.emplace(Stmt, Info); - return; - } auto *Literal = dyn_cast_or_null<Constant>(Val); if (!Type || !Literal) { reportError("CONSTANT initializer must be a literal"); |
