* [Ada] Debug info not available on subp having a class-wide precondition
@ 2020-06-03 10:03 Pierre-Marie de Rodat
0 siblings, 0 replies; only message in thread
From: Pierre-Marie de Rodat @ 2020-06-03 10:03 UTC (permalink / raw)
To: gcc-patches; +Cc: Gary Dismukes
[-- Attachment #1: Type: text/plain, Size: 571 bytes --]
The debugger doesn't allow stepping into a subprogram when the
subprogram has a class-wide precondition (or postcondition). The
compiler generates wrappers for such subprograms and creates a new
"class-wide clone" of the subprogram, and the Needs_Debug_Info flag
isn't set on the clone subprogram's entity.
Tested on x86_64-pc-linux-gnu, committed on trunk
2020-06-03 Gary Dismukes <dismukes@adacore.com>
gcc/ada/
* sem_util.adb (Build_Class_Wide_Clone_Decl): Call
Set_Debug_Info_Needed to set the Needs_Debug_Info flag on
Clone_Id if the flag is set on Spec_Id.
[-- Attachment #2: patch.diff --]
[-- Type: text/x-diff, Size: 502 bytes --]
--- gcc/ada/sem_util.adb
+++ gcc/ada/sem_util.adb
@@ -1618,6 +1618,13 @@ package body Sem_Util is
-- wrapper call to inherited operation.
Set_Class_Wide_Clone (Spec_Id, Clone_Id);
+
+ -- Inherit debug info flag from Spec_Id to Clone_Id to allow debugging
+ -- of the class-wide clone subprogram.
+
+ if Needs_Debug_Info (Spec_Id) then
+ Set_Debug_Info_Needed (Clone_Id);
+ end if;
end Build_Class_Wide_Clone_Decl;
-----------------------------
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-06-03 10:03 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-03 10:03 [Ada] Debug info not available on subp having a class-wide precondition Pierre-Marie de Rodat
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).