private void GetLlvmType() { LLVM.Type retTy = _module.GetLlvmType(_method.ReturnType); if (_method.ReturnType.MetadataType == MetadataType.Class) { retTy = retTy.GetPointerTo(); } List <LLVM.Type> paramsTy = new List <LLVM.Type>(); if (_method.HasThis) { paramsTy.Add(_module.GetLlvmType(_method.DeclaringType).GetPointerTo()); } if (_method.HasParameters) { foreach (ParameterDefinition p in _method.Parameters) { LLVM.Type ty = _module.GetLlvmType(p.ParameterType); if (p.ParameterType.MetadataType == MetadataType.Class) { ty = ty.GetPointerTo(); } paramsTy.Add(ty); } } // TODO false -> varArg _type = LLVM.FunctionType.Get(retTy, paramsTy.ToArray(), false); }
private void GetLlvmType() { LLVM.Type retTy = _module.GetLlvmType(_method.ReturnType); if (_method.ReturnType.MetadataType == MetadataType.Class) { retTy = retTy.GetPointerTo(); } List<LLVM.Type> paramsTy = new List<LLVM.Type>(); if (_method.HasThis) { paramsTy.Add(_module.GetLlvmType(_method.DeclaringType).GetPointerTo()); } if (_method.HasParameters) { foreach (ParameterDefinition p in _method.Parameters) { LLVM.Type ty = _module.GetLlvmType(p.ParameterType); if (p.ParameterType.MetadataType == MetadataType.Class) { ty = ty.GetPointerTo(); } paramsTy.Add(ty); } } // TODO false -> varArg _type = LLVM.FunctionType.Get(retTy, paramsTy.ToArray(), false); }