예제 #1
0
func (a llvmAttribute) Apply(v Value) {
	if _, isfunc := v.Type().(*types.Func); isfunc {
		v.LLVMValue().AddFunctionAttr(llvm.Attribute(a))
	} else {
		v.LLVMValue().AddAttribute(llvm.Attribute(a))
	}
}
예제 #2
0
파일: attribute.go 프로젝트: payco/llgo
func (a llvmAttribute) Apply(v Value) {
	if _, isfunc := v.Type().(*types.Signature); isfunc {
		fn := v.LLVMValue()
		fn = llvm.ConstExtractValue(fn, []uint32{0})
		fn.AddFunctionAttr(llvm.Attribute(a))
	} else {
		v.LLVMValue().AddAttribute(llvm.Attribute(a))
	}
}