[Bug debug/20967] g++ generates same DW_AT_ranges info for two different functions

drow at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue Apr 12 13:14:00 GMT 2005


------- Additional Comments From drow at gcc dot gnu dot org  2005-04-12 13:14 -------
No version information.  Is this HEAD, with Jim's earlier DW_AT_ranges patch?

I don't think your understanding is correct, but you didn't show enough of the
DIE tree to be sure.  Ignore inlined functions for a moment; let's just think
about functions and lexical blocks.  A lexical block normally has a range of
associated PC addresses, and a function normally has a high and low pc.  The
lexical block is a strict subset of the function, so it should be included in
the pc attributes of the function.

I'm guessing from your description that _S_get_pool is inlined into
get_allocator is inlined into main.  Because _S_get_pool is inside of
get_allocator, it makes sense for its PC ranges to be a subset of those for
get_allocator.  A PC always belongs to the innermost block.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |drow at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20967



More information about the Gcc-bugs mailing list