: resolve-pointer-typedef ( type -- base-type )
dup "c-type" word-prop dup word?
- [ nip resolve-pointer-typedef ] [ drop ] if ;
+ [ nip resolve-pointer-typedef ] [
+ pointer? [ drop void* ] when
+ ] if ;
: special-pointer-type ( type -- special-type )
dup c-type-word? [
{
{ [ dup "void" = ] [ drop void ] }
{ [ CHAR: ] over member? ] [ parse-array-type parse-c-type-name prefix ] }
- { [ dup search ] [ parse-c-type-name ] }
{ [ "*" ?tail ] [ (parse-c-type) <pointer> ] }
+ { [ dup search ] [ parse-c-type-name ] }
[ dup search [ ] [ no-word ] ?if ]
} cond ;