mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-20 04:19:04 +00:00
compiler: fix use of global context: llvm.Int32Type()
This patch fixes a use of the global context. I've seen a few instances of crashes in the llvm.ConstInt function when called from makeStructTypeFields, which I believe are caused by this bug.
This commit is contained in:
committed by
Ron Evans
parent
f800f7507c
commit
6d3c11627c
@@ -103,8 +103,8 @@ func (c *compilerContext) makeStructTypeFields(typ *types.Struct) llvm.Value {
|
|||||||
fieldName.SetLinkage(llvm.PrivateLinkage)
|
fieldName.SetLinkage(llvm.PrivateLinkage)
|
||||||
fieldName.SetUnnamedAddr(true)
|
fieldName.SetUnnamedAddr(true)
|
||||||
fieldName = llvm.ConstGEP(fieldName, []llvm.Value{
|
fieldName = llvm.ConstGEP(fieldName, []llvm.Value{
|
||||||
llvm.ConstInt(llvm.Int32Type(), 0, false),
|
llvm.ConstInt(c.ctx.Int32Type(), 0, false),
|
||||||
llvm.ConstInt(llvm.Int32Type(), 0, false),
|
llvm.ConstInt(c.ctx.Int32Type(), 0, false),
|
||||||
})
|
})
|
||||||
fieldGlobalValue = llvm.ConstInsertValue(fieldGlobalValue, fieldName, []uint32{1})
|
fieldGlobalValue = llvm.ConstInsertValue(fieldGlobalValue, fieldName, []uint32{1})
|
||||||
if typ.Tag(i) != "" {
|
if typ.Tag(i) != "" {
|
||||||
@@ -112,8 +112,8 @@ func (c *compilerContext) makeStructTypeFields(typ *types.Struct) llvm.Value {
|
|||||||
fieldTag.SetLinkage(llvm.PrivateLinkage)
|
fieldTag.SetLinkage(llvm.PrivateLinkage)
|
||||||
fieldTag.SetUnnamedAddr(true)
|
fieldTag.SetUnnamedAddr(true)
|
||||||
fieldTag = llvm.ConstGEP(fieldTag, []llvm.Value{
|
fieldTag = llvm.ConstGEP(fieldTag, []llvm.Value{
|
||||||
llvm.ConstInt(llvm.Int32Type(), 0, false),
|
llvm.ConstInt(c.ctx.Int32Type(), 0, false),
|
||||||
llvm.ConstInt(llvm.Int32Type(), 0, false),
|
llvm.ConstInt(c.ctx.Int32Type(), 0, false),
|
||||||
})
|
})
|
||||||
fieldGlobalValue = llvm.ConstInsertValue(fieldGlobalValue, fieldTag, []uint32{2})
|
fieldGlobalValue = llvm.ConstInsertValue(fieldGlobalValue, fieldTag, []uint32{2})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user