* [Bug debug/101598] [debug, ada] .loc generated for defs__struct1IP
2021-07-23 12:35 [Bug debug/101598] New: [debug, ada] .loc generated for defs__struct1IP vries at gcc dot gnu.org
@ 2021-07-23 12:42 ` vries at gcc dot gnu.org
2021-07-23 12:54 ` bernd.edlinger at hotmail dot de
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: vries at gcc dot gnu.org @ 2021-07-23 12:42 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101598
--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
FWIW, this works for me:
...
$ git diff
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 82783c4968b..0e21775041c 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -28390,6 +28390,8 @@ dwarf2out_source_line (unsigned int line, unsigned int
column,
column = 0;
file_num = maybe_emit_file (lookup_filename (filename));
+ if (DECL_IGNORED_P (cfun->decl) && is_ada ())
+ return;
/* ??? TODO: Elide duplicate line number entries. Traditionally,
the debugger has used the second (possibly duplicate) line number
...
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug debug/101598] [debug, ada] .loc generated for defs__struct1IP
2021-07-23 12:35 [Bug debug/101598] New: [debug, ada] .loc generated for defs__struct1IP vries at gcc dot gnu.org
2021-07-23 12:42 ` [Bug debug/101598] " vries at gcc dot gnu.org
@ 2021-07-23 12:54 ` bernd.edlinger at hotmail dot de
2021-07-23 12:55 ` vries at gcc dot gnu.org
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2021-07-23 12:54 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101598
--- Comment #2 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
Yes, but it wont fix dwarf-4 and also not the case
when this is not the first function. then we'll
have the .loc from the previous function extend to this one.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug debug/101598] [debug, ada] .loc generated for defs__struct1IP
2021-07-23 12:35 [Bug debug/101598] New: [debug, ada] .loc generated for defs__struct1IP vries at gcc dot gnu.org
2021-07-23 12:42 ` [Bug debug/101598] " vries at gcc dot gnu.org
2021-07-23 12:54 ` bernd.edlinger at hotmail dot de
@ 2021-07-23 12:55 ` vries at gcc dot gnu.org
2021-07-23 13:05 ` vries at gcc dot gnu.org
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: vries at gcc dot gnu.org @ 2021-07-23 12:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101598
--- Comment #3 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Tom de Vries from comment #1)
> FWIW, this works for me:
And, doesn't reintroduce PR101575 on trunk.
AFAIU, the solution suggested in PR101575 comment 8 of setting the
DECL_SOURCE_LOCATION for defs__struct1IP to UNKNOWN_LOCATION would reintroduce
PR101575 on trunk.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug debug/101598] [debug, ada] .loc generated for defs__struct1IP
2021-07-23 12:35 [Bug debug/101598] New: [debug, ada] .loc generated for defs__struct1IP vries at gcc dot gnu.org
` (2 preceding siblings ...)
2021-07-23 12:55 ` vries at gcc dot gnu.org
@ 2021-07-23 13:05 ` vries at gcc dot gnu.org
2021-07-23 13:08 ` bernd.edlinger at hotmail dot de
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: vries at gcc dot gnu.org @ 2021-07-23 13:05 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101598
--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Bernd Edlinger from comment #2)
> Yes, but it wont fix dwarf-4 and also not the case
> when this is not the first function. then we'll
> have the .loc from the previous function extend to this one.
I just tried out:
- dwarf-4
- manually changing order of defs__f1 and defs__struct1IP in .s file
The result look fine to me. So please show a concrete example where this
produces wrong results.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug debug/101598] [debug, ada] .loc generated for defs__struct1IP
2021-07-23 12:35 [Bug debug/101598] New: [debug, ada] .loc generated for defs__struct1IP vries at gcc dot gnu.org
` (3 preceding siblings ...)
2021-07-23 13:05 ` vries at gcc dot gnu.org
@ 2021-07-23 13:08 ` bernd.edlinger at hotmail dot de
2021-07-24 6:11 ` bernd.edlinger at hotmail dot de
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2021-07-23 13:08 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101598
--- Comment #5 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
I will have a look.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug debug/101598] [debug, ada] .loc generated for defs__struct1IP
2021-07-23 12:35 [Bug debug/101598] New: [debug, ada] .loc generated for defs__struct1IP vries at gcc dot gnu.org
` (4 preceding siblings ...)
2021-07-23 13:08 ` bernd.edlinger at hotmail dot de
@ 2021-07-24 6:11 ` bernd.edlinger at hotmail dot de
2021-07-24 19:26 ` bernd.edlinger at hotmail dot de
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2021-07-24 6:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101598
--- Comment #6 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
(In reply to Tom de Vries from comment #4)
> (In reply to Bernd Edlinger from comment #2)
> > Yes, but it wont fix dwarf-4 and also not the case
> > when this is not the first function. then we'll
> > have the .loc from the previous function extend to this one.
>
> I just tried out:
> - dwarf-4
> - manually changing order of defs__f1 and defs__struct1IP in .s file
>
> The result look fine to me. So please show a concrete example where this
> produces wrong results.
I did the same.
The effect I meant is the following which is basically PR97937
The line number from the previous function defs__f1 extends to
defs__structIP.
So when I debug this I see the following:
Reading symbols from ./formatted_ref...
(gdb) b defs__struct1IP
Breakpoint 1 at 0x402faa: file defs.adb, line 21.
(gdb) r
Starting program:
/home/ed/gnu/binutils-gdb/gdb/testsuite/gdb.ada/formatted_ref/formatted_ref
Breakpoint 1, 0x0000000000402faa in defs__struct1IP () at defs.adb:21
21 end F1;
This here the line number is totally misleading.
So to me it appears, that PR101575 is just the evil
twin brother of PR97937.
And indeed the fix for PR97937 - excluding the really
not debuggable funtions from the debug ranges -
is not sufficient to get rid of the bogus line table
entries from PR101575.
So I start to think that emitting a dummy .file table entry
as you suggest is the way to go, but I would like not to
break the fix for PR97937 at the same time.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug debug/101598] [debug, ada] .loc generated for defs__struct1IP
2021-07-23 12:35 [Bug debug/101598] New: [debug, ada] .loc generated for defs__struct1IP vries at gcc dot gnu.org
` (5 preceding siblings ...)
2021-07-24 6:11 ` bernd.edlinger at hotmail dot de
@ 2021-07-24 19:26 ` bernd.edlinger at hotmail dot de
2021-08-04 14:26 ` bernd.edlinger at hotmail dot de
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2021-07-24 19:26 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101598
--- Comment #7 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
Created attachment 51202
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51202&action=edit
Proposed patch
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug debug/101598] [debug, ada] .loc generated for defs__struct1IP
2021-07-23 12:35 [Bug debug/101598] New: [debug, ada] .loc generated for defs__struct1IP vries at gcc dot gnu.org
` (6 preceding siblings ...)
2021-07-24 19:26 ` bernd.edlinger at hotmail dot de
@ 2021-08-04 14:26 ` bernd.edlinger at hotmail dot de
2021-08-11 5:30 ` cvs-commit at gcc dot gnu.org
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2021-08-04 14:26 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101598
--- Comment #8 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
patch was posted here:
https://gcc.gnu.org/pipermail/gcc-patches/2021-July/576027.html
review here:
https://gcc.gnu.org/pipermail/gcc-patches/2021-August/576520.html
and here:
https://gcc.gnu.org/pipermail/gcc-patches/2021-August/576538.html
conclusion: I'm not sure that we want it.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug debug/101598] [debug, ada] .loc generated for defs__struct1IP
2021-07-23 12:35 [Bug debug/101598] New: [debug, ada] .loc generated for defs__struct1IP vries at gcc dot gnu.org
` (7 preceding siblings ...)
2021-08-04 14:26 ` bernd.edlinger at hotmail dot de
@ 2021-08-11 5:30 ` cvs-commit at gcc dot gnu.org
2021-08-11 7:20 ` edlinger at gcc dot gnu.org
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-08-11 5:30 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101598
--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Bernd Edlinger <edlinger@gcc.gnu.org>:
https://gcc.gnu.org/g:a45918f8a7444a40eb397a037683ba5900a2db74
commit r12-2846-ga45918f8a7444a40eb397a037683ba5900a2db74
Author: Bernd Edlinger <bernd.edlinger@hotmail.de>
Date: Sat Jul 24 12:53:39 2021 +0200
Ada: Remove debug line number for DECL_IGNORED_P functions
It was pointed out in PR101598 to be inappropriate, that
ignored Ada decls receive the source line number which was
recorded in the function decl's DECL_SOURCE_LOCATION.
Therefore set all front-end-generated Ada decls with
DECL_IGNORED_P to UNKNOWN_LOCATION.
2021-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR debug/101598
* gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the
DECL_SOURCE_LOCATION of DECL_IGNORED_P gnu_subprog_decl to
UNKNOWN_LOCATION.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug debug/101598] [debug, ada] .loc generated for defs__struct1IP
2021-07-23 12:35 [Bug debug/101598] New: [debug, ada] .loc generated for defs__struct1IP vries at gcc dot gnu.org
` (8 preceding siblings ...)
2021-08-11 5:30 ` cvs-commit at gcc dot gnu.org
@ 2021-08-11 7:20 ` edlinger at gcc dot gnu.org
2022-10-25 10:24 ` cvs-commit at gcc dot gnu.org
2022-10-25 10:25 ` cvs-commit at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: edlinger at gcc dot gnu.org @ 2021-08-11 7:20 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101598
Bernd Edlinger <edlinger at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|UNCONFIRMED |RESOLVED
--- Comment #10 from Bernd Edlinger <edlinger at gcc dot gnu.org> ---
fixed
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug debug/101598] [debug, ada] .loc generated for defs__struct1IP
2021-07-23 12:35 [Bug debug/101598] New: [debug, ada] .loc generated for defs__struct1IP vries at gcc dot gnu.org
` (9 preceding siblings ...)
2021-08-11 7:20 ` edlinger at gcc dot gnu.org
@ 2022-10-25 10:24 ` cvs-commit at gcc dot gnu.org
2022-10-25 10:25 ` cvs-commit at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-10-25 10:24 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101598
--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Eric Botcazou <ebotcazou@gcc.gnu.org>:
https://gcc.gnu.org/g:cb21297f9259ceedd5f5dd7c3973535f14124d6d
commit r13-3485-gcb21297f9259ceedd5f5dd7c3973535f14124d6d
Author: Eric Botcazou <ebotcazou@adacore.com>
Date: Tue Oct 25 12:20:33 2022 +0200
Relax assertion in profiler
This assertion in branch_prob:
if (bb == ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb)
{
location_t loc = DECL_SOURCE_LOCATION (current_function_decl);
gcc_checking_assert (!RESERVED_LOCATION_P (loc));
had been correct until the fix for PR debug/101598 was installed.
gcc/
* profile.cc (branch_prob): Be prepared for ignored functions with
DECL_SOURCE_LOCATION set to UNKNOWN_LOCATION.
gcc/testsuite:
* gnat.dg/specs/coverage1.ads: New test.
* gnat.dg/specs/variant_part.ads: Minor tweak.
* gnat.dg/specs/weak1.ads: Add dg directive.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug debug/101598] [debug, ada] .loc generated for defs__struct1IP
2021-07-23 12:35 [Bug debug/101598] New: [debug, ada] .loc generated for defs__struct1IP vries at gcc dot gnu.org
` (10 preceding siblings ...)
2022-10-25 10:24 ` cvs-commit at gcc dot gnu.org
@ 2022-10-25 10:25 ` cvs-commit at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-10-25 10:25 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101598
--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Eric Botcazou
<ebotcazou@gcc.gnu.org>:
https://gcc.gnu.org/g:da1f6e5260dbcce59372cb522e1af763f25eed6b
commit r12-8866-gda1f6e5260dbcce59372cb522e1af763f25eed6b
Author: Eric Botcazou <ebotcazou@adacore.com>
Date: Tue Oct 25 12:20:33 2022 +0200
Relax assertion in profiler
This assertion in branch_prob:
if (bb == ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb)
{
location_t loc = DECL_SOURCE_LOCATION (current_function_decl);
gcc_checking_assert (!RESERVED_LOCATION_P (loc));
had been correct until the fix for PR debug/101598 was installed.
gcc/
* profile.cc (branch_prob): Be prepared for ignored functions with
DECL_SOURCE_LOCATION set to UNKNOWN_LOCATION.
gcc/testsuite:
* gnat.dg/specs/coverage1.ads: New test.
* gnat.dg/specs/variant_part.ads: Minor tweak.
* gnat.dg/specs/weak1.ads: Add dg directive.
^ permalink raw reply [flat|nested] 13+ messages in thread