summaryrefslogtreecommitdiffstats
path: root/tests/auto/perfdata/vector_static_clang/vector_static_clang_v8.0.1
diff options
context:
space:
mode:
authorMilian Wolff <milian.wolff@kdab.com>2019-09-26 15:32:48 +0200
committerMilian Wolff <milian.wolff@kdab.com>2019-10-02 09:16:05 +0000
commitd25737577023ce9fa3bd593f22fa23c3fcaedbfb (patch)
treedac30d0fa7c3fbcc8259d1d977346bf2bd3f5a6d /tests/auto/perfdata/vector_static_clang/vector_static_clang_v8.0.1
parentec8374d9c383957edf64436939d5c421d1fcc287 (diff)
Build fully qualified identifiers for inlined C++ subroutines
This feels hacky, but it seems to work! We finally get proper symbols for Qt signal/slot functors and other inlined lambdas etc. The new test converts a perf.data for a statically-build test application into textual form and then verifies that it matches what we want. Sadly, QTestLib doesn't provide an easy way to diff, but this is good enough I guess. Esp. note how we write the actual text to disk too, so if something fails it's easy to run diff on the command line if needed. In checking that this patch actually helps, I noticed that only the test binary compiled with gcc produces symbol names that are unexpected, whereas the clang-compiled binary produces good results even without this patch! This test also uncovers two bugs in the DWARF emitted by clang and gcc, see the following upstream bug reports for more information: GCC is missing inline frames for sin/cos calls: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91929 Clang produces invalid mangled DW_AT_linkage_name values for sin/cos: https://bugs.llvm.org/show_bug.cgi?id=43491 Change-Id: I0acbf57d191f09383c60bdab9e6664f9a74db42f Fixes: https://github.com/KDAB/hotspot/issues/210 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tests/auto/perfdata/vector_static_clang/vector_static_clang_v8.0.1')
-rwxr-xr-xtests/auto/perfdata/vector_static_clang/vector_static_clang_v8.0.1bin0 -> 1023992 bytes
1 files changed, 0 insertions, 0 deletions
diff --git a/tests/auto/perfdata/vector_static_clang/vector_static_clang_v8.0.1 b/tests/auto/perfdata/vector_static_clang/vector_static_clang_v8.0.1
new file mode 100755
index 0000000..569e630
--- /dev/null
+++ b/tests/auto/perfdata/vector_static_clang/vector_static_clang_v8.0.1
Binary files differ