mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-15 08:23:41 +00:00
compiler: only define the package path once
Adding https://github.com/tinygo-org/tinygo/pull/3534 by hand to avoid conflicts when I rebase.
This commit is contained in:
+10
-7
@@ -90,13 +90,16 @@ func (c *compilerContext) pkgPathPtr(pkgpath string) llvm.Value {
|
|||||||
pkgpathName = "reflect/types.type.pkgpath:" + pkgpath
|
pkgpathName = "reflect/types.type.pkgpath:" + pkgpath
|
||||||
}
|
}
|
||||||
|
|
||||||
pkgpathInitializer := c.ctx.ConstString(pkgpath+"\x00", false)
|
pkgpathGlobal := c.mod.NamedGlobal(pkgpathName)
|
||||||
pkgpathGlobal := llvm.AddGlobal(c.mod, pkgpathInitializer.Type(), pkgpathName)
|
if pkgpathGlobal.IsNil() {
|
||||||
pkgpathGlobal.SetInitializer(pkgpathInitializer)
|
pkgpathInitializer := c.ctx.ConstString(pkgpath+"\x00", false)
|
||||||
pkgpathGlobal.SetAlignment(1)
|
pkgpathGlobal = llvm.AddGlobal(c.mod, pkgpathInitializer.Type(), pkgpathName)
|
||||||
pkgpathGlobal.SetUnnamedAddr(true)
|
pkgpathGlobal.SetInitializer(pkgpathInitializer)
|
||||||
pkgpathGlobal.SetLinkage(llvm.LinkOnceODRLinkage)
|
pkgpathGlobal.SetAlignment(1)
|
||||||
pkgpathGlobal.SetGlobalConstant(true)
|
pkgpathGlobal.SetUnnamedAddr(true)
|
||||||
|
pkgpathGlobal.SetLinkage(llvm.LinkOnceODRLinkage)
|
||||||
|
pkgpathGlobal.SetGlobalConstant(true)
|
||||||
|
}
|
||||||
pkgPathPtr := llvm.ConstGEP(pkgpathGlobal.GlobalValueType(), pkgpathGlobal, []llvm.Value{
|
pkgPathPtr := llvm.ConstGEP(pkgpathGlobal.GlobalValueType(), pkgpathGlobal, []llvm.Value{
|
||||||
llvm.ConstInt(c.ctx.Int32Type(), 0, false),
|
llvm.ConstInt(c.ctx.Int32Type(), 0, false),
|
||||||
llvm.ConstInt(c.ctx.Int32Type(), 0, false),
|
llvm.ConstInt(c.ctx.Int32Type(), 0, false),
|
||||||
|
|||||||
Reference in New Issue
Block a user