diff options
author | Nick Alcock <nick.alcock@oracle.com> | 2019-11-05 17:57:55 +0000 |
---|---|---|
committer | Nick Alcock <nick.alcock@oracle.com> | 2020-06-26 15:56:39 +0100 |
commit | 8ffcdf1823d186c94eb3a1781e366a155646140a (patch) | |
tree | b848d89e552b17c12a6fef2824a24d372cd5e821 /libctf/ChangeLog | |
parent | d04a47ac53b7e3ae572021711c91f2f3d333417b (diff) | |
download | gdb-8ffcdf1823d186c94eb3a1781e366a155646140a.zip gdb-8ffcdf1823d186c94eb3a1781e366a155646140a.tar.gz gdb-8ffcdf1823d186c94eb3a1781e366a155646140a.tar.bz2 |
libctf: create: forwards are always in the namespace of their referent
The C namespace a forward is located in is always the same as the
namespace of the corresponding complete type: 'struct foo' is in the
struct namespace and does not collide with, say, 'union foo'.
libctf allowed for this in many places, but inconsistently: in
particular, forward *addition* never allowed for this, and was interning
forwards in the default namespace, which is always wrong, since you can
only forward structs, unions and enums, all of which are in their own
namespaces in C.
Forward removal needs corresponding adjustment to remove the names form
the right namespace, as does ctf_rollback.
libctf/
* ctf-create.c (ctf_add_forward): Intern in the right namespace.
(ctf_dtd_delete): Remove correspondingly.
(ctf_rollback): Likewise.
Diffstat (limited to 'libctf/ChangeLog')
-rw-r--r-- | libctf/ChangeLog | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libctf/ChangeLog b/libctf/ChangeLog index 1b019a3..3ab0a6c 100644 --- a/libctf/ChangeLog +++ b/libctf/ChangeLog @@ -1,5 +1,11 @@ 2020-06-26 Nick Alcock <nick.alcock@oracle.com> + * ctf-create.c (ctf_add_forward): Intern in the right namespace. + (ctf_dtd_delete): Remove correspondingly. + (ctf_rollback): Likewise. + +2020-06-26 Nick Alcock <nick.alcock@oracle.com> + * ctf-create.c (ctf_add_type_internal): Hand back existing types unchanged. |