Fix a couple of bugs around the handling of structs and unions of size zero.
These would cause ctfconvert(1) to return an error when attempting to
resolve valid C types.

Reviewed by:	Robert Mustacchi <rm@joyent.com>
MFC after:	2 weeks
Sponsored by:	EMC / Isilon Storage Division


git-svn-id: svn+ssh://svn.freebsd.org/base/head@274564 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Remove an incorrect optimization. The type IDs of each member of a struct or
union must be checked when determine whether two types are equivalent. This
bug could cause ctfmerge(1) to incorrectly merge distinct types.

Reviewed by:	Robert Mustacchi <rm@joyent.com>
MFC after:	2 weeks
Sponsored by:	EMC / Isilon Storage Division


git-svn-id: svn+ssh://svn.freebsd.org/base/head@274565 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Only compare visitation counters if they've both been set for the current
type graph walk.

Reviewed by:	Robert Mustacchi <rm@joyent.com>
MFC after:	2 weeks
Sponsored by:	EMC / Isilon Storage Division


git-svn-id: svn+ssh://svn.freebsd.org/base/head@274569 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f