Exemplo n.º 1
0
Arquivo: parse.go Projeto: 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}}
}
Exemplo n.º 2
0
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}
}