public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
From: "woodard at redhat dot com" <sourceware-bugzilla@sourceware.org>
To: libabigail@sourceware.org
Subject: [Bug default/21843] libabigail not correctly keeping track of nested scopes for typedefs
Date: Sun, 01 Jan 2017 00:00:00 -0000	[thread overview]
Message-ID: <bug-21843-9487-c8dc1cvDxI@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-21843-9487@http.sourceware.org/bugzilla/>

https://sourceware.org/bugzilla/show_bug.cgi?id=21843

--- Comment #5 from Ben Woodard <woodard at redhat dot com> ---
I'm still not convinced that libabigail is looking at the same structures here.
If we back up a little bit and begin looking from _M_start:

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<int, std::allocator<int> > 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<int, std::allocator<int> >' at
stl_vector.h:74:1 changed:
         type size hasn't changed
         1 data member change:
          type of 'std::_Vector_base<int, std::allocator<int> >::_Vector_impl
std::_Vector_base<int, std::allocator<int> >::_M_impl' changed:
            type size hasn't changed
            3 data member changes:
             type of 'std::_Vector_base<int, std::allocator<int> >::pointer
std::_Vector_base<int, std::allocator<int> >::_Vector_impl::_M_start' changed:
               underlying type 'typedef
__gnu_cxx::__alloc_traits<std::allocator<int> >::pointer' at
alloc_traits.h:120:1 changed:
...

When you look at the output of abidw output from gcc you find:

            <data-member access='public' layout-offset-in-bits='0'>
              <!-- std::_Vector_base<int, std::allocator<int> >::pointer
std::_Vector_base<int, std::allocator<int> >::_Vector_impl::_M_start -->
              <var-decl name='_M_start' type-id='type-id-25'
visibility='default' filepath='/usr/include/c++/7/bits/stl_vector.h' line='84'
column='1'/>
            </data-member>

and look back at type-id-25 you see:

        <member-type access='public'>
          <!-- typedef std::_Vector_base<int, std::allocator<int> >::pointer
std::vector<int, std::allocator<int> >::pointer -->
          <typedef-decl name='pointer' type-id='type-id-25'
filepath='/usr/include/c++/7/bits/stl_vector.h' line='233' column='1'
id='type-id-24'/>
        </member-type>

Then you look at the abidw output from clang:

            <data-member access='public' layout-offset-in-bits='0'>
              <!-- std::_Vector_base<int, std::allocator<int> >::pointer
std::_Vector_base<int, std::allocator<int> >::_Vector_impl::_M_start -->
              <var-decl name='_M_start' type-id='type-id-22'
visibility='default'
filepath='/usr/bin/../lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/stl_vector.h'
line='84' column='1'/>
            </data-member>

        <member-type access='private'>
          <!-- typedef std::_Vector_base<int, std::allocator<int> >::pointer
std::vector<int, std::allocator<int> >::pointer -->
          <typedef-decl name='pointer' type-id='type-id-22'
filepath='/usr/bin/../lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/stl_vector.h'
line='233' column='1' id='type-id-21'/>
        </member-type>

So it looks to me like libabigail is processing the DWARF correctly but during
the comparison phase. It seems like it is pulling a typedef of "pointer" from a
different nested scope.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

  parent reply	other threads:[~2017-07-27 14:33 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-01  0:00 [Bug default/21843] New: libabigail getting confused or possibly bad dwarf woodard at redhat dot com
2017-01-01  0:00 ` [Bug default/21843] libabigail not correctly keeping track of nested scopes for typedefs woodard at redhat dot com
2017-01-01  0:00 ` dodji at redhat dot com
2017-01-01  0:00 ` woodard at redhat dot com
2017-01-01  0:00 ` woodard at redhat dot com
2017-01-01  0:00 ` woodard at redhat dot com
2017-01-01  0:00 ` woodard at redhat dot com
2017-01-01  0:00 ` woodard at redhat dot com [this message]
2017-01-01  0:00 ` woodard at redhat dot com
2017-01-01  0:00 ` [Bug default/21843] libabigail getting confused or possibly bad dwarf woodard at redhat dot com
2017-01-01  0:00 ` [Bug default/21843] libabigail not correctly keeping track of nested scopes for typedefs woodard at redhat dot com
2017-01-01  0:00 ` [Bug default/21843] libabigail getting confused or possibly bad dwarf woodard at redhat dot com
2021-12-01 23:29 ` [Bug default/21843] libabigail not correctly keeping track of nested scopes for typedefs woodard at redhat dot com

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-21843-9487-c8dc1cvDxI@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=libabigail@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).