public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [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).