[PATCH] Add assert checking that CU is not referenced from PU

Tom de Vries tdevries@suse.de
Thu Feb 25 14:46:16 GMT 2021


Hi,

One of the invariants of dwz is that references from a newly created PU can
only reference other PUs.

Add an assert that checks this.

Any comments?

Thanks,
- Tom

Add assert checking that CU is not referenced from PU

2021-02-25  Tom de Vries  <tdevries@suse.de>

	* dwz.c (write_die): Add assert.

---
 dwz.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/dwz.c b/dwz.c
index 89cf8d1..887bf24 100644
--- a/dwz.c
+++ b/dwz.c
@@ -12572,6 +12572,8 @@ write_die (unsigned char *ptr, dw_cu_ref cu, dw_die_ref die,
 		    {
 		      dw_cu_ref refdcu = die_cu (refd);
 		      value = refd->u.p2.die_new_offset;
+		      assert (IMPLIES (cu->cu_kind == CU_PU,
+				       die_cu (refd)->cu_kind == CU_PU));
 		      assert (value && refdcu->cu_kind != CU_ALT);
 		      if (t->attr[j].form == DW_FORM_ref_addr)
 			{


More information about the Dwz mailing list