[PATCH 2/2] libdw: Skip imported compiler_units in libdw_visit_scopes walking DIE tree

Mark Wielaard mark@klomp.org
Fri May 8 16:50:34 GMT 2020


Some gcc -flto versions imported other top-level compile units,
skip those. Otherwise we'll visit various DIE trees multiple times.

Note in the testcase that with newer GCC versions function foo is
fully inlined and does appear only once (as declared, but not as
separate subprogram).

Signed-off-by: Mark Wielaard <mark@klomp.org>
---
 libdw/ChangeLog             |   5 +++++
 libdw/libdw_visit_scopes.c  |   6 +++++-
 tests/ChangeLog             |   9 +++++++++
 tests/Makefile.am           |   1 +
 tests/run-allfcts.sh        |  27 +++++++++++++++++++++++++++
 tests/testfile-lto-gcc8.bz2 | Bin 0 -> 3686 bytes
 tests/testfile-lto-gcc9.bz2 | Bin 0 -> 3809 bytes
 7 files changed, 47 insertions(+), 1 deletion(-)
 create mode 100755 tests/testfile-lto-gcc8.bz2
 create mode 100755 tests/testfile-lto-gcc9.bz2

diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index 34def10d..c75b0958 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,8 @@
+2020-05-08  Mark Wielaard  <mark@klomp.org>
+
+	* libdw_visit_scopes.c (walk_children): Don't recurse into imported
+	DW_TAG_compile_units.
+
 2020-05-08  Mark Wielaard  <mark@klomp.org>
 
 	* dwarf_decl_file.c (dwarf_decl_file): Use attr CU instead of DIE
diff --git a/libdw/libdw_visit_scopes.c b/libdw/libdw_visit_scopes.c
index eb892e10..7dfa5f6b 100644
--- a/libdw/libdw_visit_scopes.c
+++ b/libdw/libdw_visit_scopes.c
@@ -125,8 +125,12 @@ walk_children (struct walk_children_state *state)
 	  Dwarf_Attribute *attr = INTUSE(dwarf_attr) (&state->child.die,
 						      DW_AT_import,
 						      &attr_mem);
+	  /* Some gcc -flto versions imported other top-level compile units,
+	     skip those.  */
 	  if (INTUSE(dwarf_formref_die) (attr, &state->child.die) != NULL
-	      && INTUSE(dwarf_child) (&state->child.die, &state->child.die) == 0)
+	      && INTUSE(dwarf_tag) (&state->child.die) != DW_TAG_compile_unit
+	      && (INTUSE(dwarf_child) (&state->child.die, &state->child.die)
+		  == 0))
 	    {
 	      /* Checks the given DIE hasn't been imported yet
 	         to prevent cycles.  */
diff --git a/tests/ChangeLog b/tests/ChangeLog
index b59ebc9f..4e9ae020 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,12 @@
+2020-05-05  Mark Wielaard  <mark@klomp.org>
+
+	* testfile-lto-gcc8.bz2: New test file.
+	* testfile-lto-gcc9.bz2: Likewise.
+	* Makefile.am (EXTRA_DIST): Add testfile-lto-gcc8.bz2 and
+	testfile-lto-gcc9.bz2.
+	* run-allfcts.sh: Add testfile-lto-gcc9 and testfile-lto-gcc8
+	tests.
+
 2020-05-05  Mark Wielaard  <mark@klomp.org>
 
 	* testfile-lto-gcc10.bz2: New test file.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 2fed12e1..a7ad07d0 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -219,6 +219,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
 	     testfile13.bz2 run-strip-test3.sh run-allfcts.sh \
 	     testfile_class_func.bz2 testfile_nested_funcs.bz2 \
 	     testfile-lto-gcc10.bz2 \
+	     testfile-lto-gcc9.bz2 testfile-lto-gcc8.bz2 \
 	     run-line2addr.sh run-elflint-test.sh testfile14.bz2 \
 	     run-strip-test4.sh run-strip-test5.sh run-strip-test6.sh \
 	     run-strip-test7.sh run-strip-test8.sh run-strip-groups.sh \
diff --git a/tests/run-allfcts.sh b/tests/run-allfcts.sh
index f8c1ce78..9c0a55d8 100755
--- a/tests/run-allfcts.sh
+++ b/tests/run-allfcts.sh
@@ -143,4 +143,31 @@ testrun_compare ${abs_builddir}/allfcts testfile-lto-gcc10 <<\EOF
 /home/mark/src/tests/testfile-lto-main.c:6:main
 EOF
 
+# Using gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3)
+# gcc -g -O2 -flto -c testfile-lto-func.c
+# gcc -g -O2 -flto -c testfile-lto-main.c
+# gcc -g -O2 -flto -o testfile-lto-gcc8 testfile-lto-func.o testfile-lto-main.o
+
+testfiles testfile-lto-gcc8
+
+testrun_compare ${abs_builddir}/allfcts testfile-lto-gcc8 <<\EOF
+/home/mark/src/tests/testfile-lto-func.c:4:foo
+/home/mark/src/tests/testfile-lto-main.c:6:main
+/home/mark/src/tests/testfile-lto-main.c:6:main
+/home/mark/src/tests/testfile-lto-func.c:4:foo
+EOF
+
+# gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2)
+# gcc -g -O2 -flto -c testfile-lto-func.c
+# gcc -g -O2 -flto -c testfile-lto-main.c
+# gcc -g -O2 -flto -o testfile-lto-gcc9 testfile-lto-func.o testfile-lto-main.o
+
+testfiles testfile-lto-gcc9
+
+testrun_compare ${abs_builddir}/allfcts testfile-lto-gcc9 <<\EOF
+/home/mark/src/tests/testfile-lto-main.c:6:main
+/home/mark/src/tests/testfile-lto-func.c:4:foo
+/home/mark/src/tests/testfile-lto-main.c:6:main
+EOF
+
 exit 0
diff --git a/tests/testfile-lto-gcc8.bz2 b/tests/testfile-lto-gcc8.bz2
new file mode 100755
index 0000000000000000000000000000000000000000..cf744d9ec8c97e938fe48df7a9faf46039d84a7d
GIT binary patch
literal 3686
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
E!06nU82|tP

literal 0
HcmV?d00001

diff --git a/tests/testfile-lto-gcc9.bz2 b/tests/testfile-lto-gcc9.bz2
new file mode 100755
index 0000000000000000000000000000000000000000..df503618846cd717656caff52d373c1bbbd044f4
GIT binary patch
literal 3809
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
XCks103%?%p-}t+dDZ+$;W;Ld$)@bze

literal 0
HcmV?d00001

-- 
2.18.4



More information about the Elfutils-devel mailing list