libctf: lookup_by_name: do not return success for nonexistent pointer types

The recent work allowing lookups of pointers in child dicts when the
pointed-to type is in the parent dict broke the case where a pointer
type that does not exist at all is looked up: we mistakenly return the
pointed-to type, which is likely not a pointer at all.  This causes
considerable confusion.

Fixed, with a new testcase.

libctf/ChangeLog
2021-01-19  Nick Alcock  <nick.alcock@oracle.com>

	* ctf-lookup.c (ctf_lookup_by_name_internal): Do not return the
	base type if looking up a nonexistent pointer type.
	* testsuite/libctf-regression/pptrtab*: Test it.
This commit is contained in:
Nick Alcock 2021-01-19 12:45:18 +00:00
parent c98de297b3
commit e05a3e5a49
5 changed files with 45 additions and 10 deletions

View file

@ -1,4 +1,5 @@
typedef long a_t;
typedef long b_t;
a_t b;
b_t ignore1;