https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87428
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-debug
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2018-09-25
CC| |hubicka at gcc dot gnu.org,
| |jason at gcc dot gnu.org
Blocks| |87362
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot
gnu.org
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
The following "works" for example (dropping most debuginfo for the inline
instance):
Index: tree-inline.c
===================================================================
--- tree-inline.c (revision 264564)
+++ tree-inline.c (working copy)
@@ -4525,7 +4525,8 @@ expand_call_inline (basic_block bb, gimp
artificial decls inserted by the compiler itself. We need to
either link the inlined blocks into the caller block tree or
not refer to them in any way to not break GC for locations. */
- if (gimple_block (stmt))
+ if (gimple_block (stmt)
+ || LOCATION_LOCUS (gimple_location (stmt)) == UNKNOWN_LOCATION)
{
id->block = make_node (BLOCK);
BLOCK_ABSTRACT_ORIGIN (id->block) = fn;
@@ -4591,7 +4592,7 @@ expand_call_inline (basic_block bb, gimp
if (DECL_INITIAL (fn))
{
- if (gimple_block (stmt))
+ if (id->block)
{
tree *var;
likewise setting BLOCK_SOURCE_LOCATION to BUILTINS_LOCATION instead of
UNKNOWN_LOCATION (but that seems to be a hack, but we do get
DW_TAG_inlined_subroutine back that way).
So - any opinion / guidance?
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87362
[Bug 87362] GCC produces with LTO debug info with which gdb is not happy about