interp: fix compile-time alloc linkage

This makes sure compile-time allocations (globals with the $alloc
suffix) can be eliminated when unused.
Этот коммит содержится в:
Ayke van Laethem 2018-11-05 12:44:23 +01:00
родитель b4be9e033a
коммит 2cd9846cc9
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E97FF5335DFDFDED

Просмотреть файл

@ -215,6 +215,7 @@ func (fr *frame) evalBasicBlock(bb, incoming llvm.BasicBlock, indent string) (re
} }
alloc := llvm.AddGlobal(fr.Mod, allocType, fr.pkgName+"$alloc") alloc := llvm.AddGlobal(fr.Mod, allocType, fr.pkgName+"$alloc")
alloc.SetInitializer(getZeroValue(allocType)) alloc.SetInitializer(getZeroValue(allocType))
alloc.SetLinkage(llvm.InternalLinkage)
result := &GlobalValue{ result := &GlobalValue{
Underlying: alloc, Underlying: alloc,
Eval: fr.Eval, Eval: fr.Eval,