示例#1
0
文件: parse.go 项目: h12w/cwrap
func (pac *Package) newReturn(gt gcc.Type) *Return {
	if gcc.IsVoid(gt) {
		return nil
	}
	var t Type
	if gcc.IsCString(gt) {
		t = newString()
	} else {
		t = pac.getType(gt, gcc.NotSet)
	}
	return &Return{baseParam{"ret", "_ret", t}}
}
示例#2
0
文件: parse.go 项目: sbinet/cwrap
func (pac *Package) newReturn(gt gcc.Type) *Return {
	if gcc.IsVoid(gt) {
		return nil
	}
	var t Conv
	if gcc.IsCString(gt) {
		t = String{}
	} else if n, ok := pac.getNamer(gt).(Conv); ok {
		t = n
	}
	switch t.GoName() {
	case "int32", "uint32":
		t = Simple{namer{"int", t.CgoName()}}
	}
	return &Return{"ret", t}
}