From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 69469 invoked by alias); 26 Jul 2017 21:54:24 -0000 Mailing-List: contact libabigail-help@sourceware.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Id: List-Subscribe: Sender: libabigail-owner@sourceware.org Received: (qmail 64203 invoked by uid 48); 26 Jul 2017 21:54:18 -0000 From: "woodard at redhat dot com" To: libabigail@sourceware.org Subject: [Bug default/21843] New: libabigail getting confused or possibly bad dwarf Date: Sun, 01 Jan 2017 00:00:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: libabigail X-Bugzilla-Component: default X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: woodard at redhat dot com X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: dodji at redhat dot com X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter cc target_milestone attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2017-q3/txt/msg00031.txt.bz2 https://sourceware.org/bugzilla/show_bug.cgi?id=3D21843 Bug ID: 21843 Summary: libabigail getting confused or possibly bad dwarf Product: libabigail Version: unspecified Status: NEW Severity: normal Priority: P2 Component: default Assignee: dodji at redhat dot com Reporter: woodard at redhat dot com CC: libabigail at sourceware dot org Target Milestone: --- Created attachment 10287 --> https://sourceware.org/bugzilla/attachment.cgi?id=3D10287&action=3Ded= it clang object I'm sorry if this is poorly specified. I generally try to boil them down to either compiler DWARF generation errors or libabigail problems. In this cas= e I haven't been able to unravel the DWARF well enough to be able to tell. The source code is trivial: #include std::vector var; When compiled with gcc and clang g++ (GCC) 7.1.1 20170622 (Red Hat 7.1.1-3) Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. clang version 4.0.0 (tags/RELEASE_400/final) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/bin ends up generating some curious errors: [ben@localhost c++test]$ cat test4.abidiff=20 Functions changes summary: 0 Removed, 0 Changed, 0 Added function Variables changes summary: 0 Removed, 1 Changed, 0 Added variable 1 Changed variable: [C]'std::vector > var' was changed at test4.C:3:= 1: type of variable changed: type size hasn't changed 1 base class change: 'struct std::_Vector_base >' at stl_vector.h:74:1 changed: type size hasn't changed 1 data member change: type of 'std::_Vector_base >::_Vector_im= pl std::_Vector_base >::_M_impl' changed: type size hasn't changed 3 data member changes: type of 'std::_Vector_base >::pointer std::_Vector_base >::_Vector_impl::_M_start' chang= ed: underlying type 'typedef __gnu_cxx::__alloc_traits >::pointer' at alloc_traits.h:120:1 changed: underlying type 'typedef std::allocator_traits >::pointer' at allocator.h:113:1 changed: 'typedef std::allocator_traits >::pointer' access changed from 'public' to 'private' typedef name changed from std::allocator_traits >::pointer to std::allocator::pointer at allocator.h:113:1 ... The accessibility thing looks like a minor DWARF buglet by one of the compilers. However, I have been unable to trace through the DWARF from GCC = to find the type that it refers to. I also talked to mjw and he had trouble tracking down the underlying type as well. The challenge appears to be the = way that gcc imports modules. This makes it extremely difficult to manually tra= ck through GCC's DWARF. More concerning to me and why I've been spending so much time on this is: typedef name changed from std::allocator_traits >::pointer to std::allocator::pointer at allocator.h:113:1 To me this looks like: 1) libabigail is confused and is mistaking one type for another 2) something is wrong in GCC's DWARF (which I find less likely - thus this = bug) --=20 You are receiving this mail because: You are on the CC list for the bug.