Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

panic: TODO: toType - <nil> #127

Open
tsingbx opened this issue Jan 3, 2025 · 3 comments
Open

panic: TODO: toType - <nil> #127

tsingbx opened this issue Jan 3, 2025 · 3 comments
Assignees
Labels
bug Something isn't working

Comments

@tsingbx
Copy link
Contributor

tsingbx commented Jan 3, 2025

llcppgtest libcares

2025/01/03 11:06:51 TODO: toType - <nil>
panic: TODO: toType - <nil>
@tsingbx
Copy link
Contributor Author

tsingbx commented Jan 7, 2025

这个问题是因为实现return 零值的时候,不支持types.NamedType的零值转换。想着是不是可以针对返回值作特殊处理,llcppsigfetch最好能返回最底层类型,也就是CanonicalType。这样零值转换的时候,直接拿最底层没有糖的类型去做零值转换。处理本来的类型,做返回值类型显示用,再加CanonicalType字段,做零值转换,针对return返回2种类型。

@tsingbx tsingbx self-assigned this Jan 7, 2025
@luoliwoshang
Copy link
Contributor

这个问题是因为实现return 零值的时候,不支持types.NamedType的零值转换。想着是不是可以针对返回值作特殊处理,llcppsigfetch最好能返回最底层类型,也就是CanonicalType。这样零值转换的时候,直接拿最底层没有糖的类型去做零值转换。处理本来的类型,做返回值类型显示用,再加CanonicalType字段,做零值转换,针对return返回2种类型。

这里的零值指的是void么,是哪个函数声明出现的问题呀

@luoliwoshang
Copy link
Contributor

luoliwoshang commented Jan 9, 2025

got same question

2025/01/09 17:00:46 NewFuncDecl: &{g_scanner_sync_file_offset}
2025/01/09 17:00:46 NewFuncDecl: &{g_scanner_input_text}
2025/01/09 17:00:46 NewFuncDecl: &{g_scanner_get_next_token}
2025/01/09 17:00:46 NewFuncDecl: &{g_scanner_peek_next_token}
2025/01/09 17:00:46 NewFuncDecl: &{g_scanner_cur_token}
2025/01/09 17:00:46 NewFuncDecl: &{g_scanner_cur_value}
2025/01/09 17:00:46 TODO: toType - <nil>
panic: TODO: toType - <nil>

llcppg.cfg

{
	"name": "glib_2_0",
	"cflags": "$(pkg-config --cflags glib-2.0)",
	"libs": "$(pkg-config --libs glib-2.0)",
	"include": [
		"glib.h",
		"glib/deprecated/gallocator.h",
		"glib/deprecated/gcache.h",
		"glib/deprecated/gcompletion.h",
		"glib/deprecated/gmain.h",
		"glib/deprecated/grel.h",
		"glib/deprecated/gthread.h",
		"glib/galloca.h",
		"glib/garray.h",
		"glib/gasyncqueue.h",
		"glib/gatomic.h",
		"glib/gbacktrace.h",
		"glib/gbase64.h",
		"glib/gbitlock.h",
		"glib/gbookmarkfile.h",
		"glib/gbytes.h",
		"glib/gcharset.h",
		"glib/gchecksum.h",
		"glib/gconvert.h",
		"glib/gdataset.h",
		"glib/gdate.h",
		"glib/gdatetime.h",
		"glib/gdir.h",
		"glib/genviron.h",
		"glib/gerror.h",
		"glib/gfileutils.h",
		"glib/ggettext.h",
		"glib/ghash.h",
		"glib/ghmac.h",
		"glib/ghook.h",
		"glib/ghostutils.h",
		"glib/gi18n-lib.h",
		"glib/gi18n.h",
		"glib/giochannel.h",
		"glib/gkeyfile.h",
		"glib/glib-autocleanups.h",
		"glib/glib-typeof.h",
		"glib/glib-visibility.h",
		"glib/glist.h",
		"glib/gmacros.h",
		"glib/gmain.h",
		"glib/gmappedfile.h",
		"glib/gmarkup.h",
		"glib/gmem.h",
		"glib/gmessages.h",
		"glib/gnode.h",
		"glib/goption.h",
		"glib/gpathbuf.h",
		"glib/gpattern.h",
		"glib/gpoll.h",
		"glib/gprimes.h",
		"glib/gprintf.h",
		"glib/gqsort.h",
		"glib/gquark.h",
		"glib/gqueue.h",
		"glib/grand.h",
		"glib/grcbox.h",
		"glib/grefcount.h",
		"glib/grefstring.h",
		"glib/gregex.h",
		"glib/gscanner.h",
		"glib/gsequence.h",
		"glib/gshell.h",
		"glib/gslice.h",
		"glib/gslist.h",
		"glib/gspawn.h",
		"glib/gstdio.h",
		"glib/gstrfuncs.h",
		"glib/gstring.h",
		"glib/gstringchunk.h",
		"glib/gstrvbuilder.h",
		"glib/gtestutils.h",
		"glib/gthread.h",
		"glib/gthreadpool.h",
		"glib/gtimer.h",
		"glib/gtimezone.h",
		"glib/gtrashstack.h",
		"glib/gtree.h",
		"glib/gtypes.h",
		"glib/gunicode.h",
		"glib/guri.h",
		"glib/gutils.h",
		"glib/guuid.h",
		"glib/gvariant.h",
		"glib/gvarianttype.h",
		"glib/gversion.h",
		"glib/gversionmacros.h",
		"glib-object.h",
		"glib-unix.h"
	],
	"deps": null,
	"trimPrefixes": [],
	"cplusplus": false
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants