8sa1-binutils-gdb/libctf
Nick Alcock 2361f1c859 libctf, create: support addition of references to the unimplemented type
The deduplicating linker adds types from the linker inputs to the output
via the same API everyone else does, so it's important that we can emit
everything that the compiler wants us to.  Unfortunately, the compiler
may represent the unimplemented type (used for compiler constructs that
CTF cannot currently encode) as type zero or as a type of kind
CTF_K_UNKNOWN, and we don't allow the addition of types that cite the
former.

Adding this support adds a tiny bit of extra complexity: additions of
structure members immediately following a member of the unimplemented
type must be via ctf_add_member_offset or ctf_add_member_encoded, since
we have no idea how big members of the unimplemented type are.
(Attempts to do otherwise return -ECTF_NONREPRESENTABLE, like other
attempts to do forbidden things with the unimplemented type.)

Even slices of the unimplemented type are permitted: this is the only
case in which you can slice a type that terminates in a non-integral
type, on the grounds that it was likely integral in the source code,
it's just that we can't represent that sort of integral type properly
yet.

libctf/
	* ctf-create.c (ctf_add_reftype): Support refs to type zero.
	(ctf_add_array): Support array contents of type zero.
	(ctf_add_function): Support arguments and return types of
	type zero.
	(ctf_add_typedef): Support typedefs to type zero.
	(ctf_add_member_offset): Support members of type zero,
	unless added at unspecified (naturally-aligned) offset.
2020-07-22 17:57:21 +01:00
..
.gitignore libctf: restructure error handling to reduce relocations 2020-07-22 17:57:20 +01:00
aclocal.m4 libctf: support platforms with separate libintl 2020-06-26 15:56:39 +01:00
ChangeLog libctf, create: support addition of references to the unimplemented type 2020-07-22 17:57:21 +01:00
config.h.in libctf: support platforms with separate libintl 2020-06-26 15:56:39 +01:00
configure libctf: support platforms with separate libintl 2020-06-26 15:56:39 +01:00
configure.ac libctf: support platforms with separate libintl 2020-06-26 15:56:39 +01:00
ctf-archive.c Fix problems in CTF handling code exposed by the Coverity static analysis tool. 2020-07-22 16:07:48 +01:00
ctf-create.c libctf, create: support addition of references to the unimplemented type 2020-07-22 17:57:21 +01:00
ctf-decl.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-decls.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-dump.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-endian.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-error.c libctf: restructure error handling to reduce relocations 2020-07-22 17:57:20 +01:00
ctf-hash.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-impl.h include, libctf: typo fixes 2020-07-22 17:57:19 +01:00
ctf-labels.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-link.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-lookup.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-open-bfd.c libctf: add some missing #includes. 2020-06-26 15:56:39 +01:00
ctf-open.c libctf: create: non-root-visible types should not appear in name tables 2020-06-26 15:56:39 +01:00
ctf-qsort_r.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-string.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-subr.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-types.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-util.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elf.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
libctf.ver libctf, binutils: support CTF archives like objdump 2020-06-26 15:56:39 +01:00
Makefile.am libctf: restructure error handling to reduce relocations 2020-07-22 17:57:20 +01:00
Makefile.in libctf: restructure error handling to reduce relocations 2020-07-22 17:57:20 +01:00
mkerrors.sed libctf: restructure error handling to reduce relocations 2020-07-22 17:57:20 +01:00
swap.h libctf, elfcpp, gold: do not assume that <byteswap.h> contains bswap_* 2020-06-26 15:56:39 +01:00