public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug debug/47471] New: stdarg functions extraneous too-early prologue end
@ 2011-01-26 11:05 jan.kratochvil at redhat dot com
  2011-02-13 17:44 ` [Bug debug/47471] [4.6 Regression] " jsm28 at gcc dot gnu.org
                   ` (24 more replies)
  0 siblings, 25 replies; 26+ messages in thread
From: jan.kratochvil at redhat dot com @ 2011-01-26 11:05 UTC (permalink / raw)
  To: gcc-bugs

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

           Summary: stdarg functions extraneous too-early prologue end
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: debug
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: jan.kratochvil@redhat.com
            Target: x86_64-fedora15-linux-gnu


GDB tracker:
http://sourceware.org/bugzilla/show_bug.cgi?id=12435

-------------------------------------------------------------------------------
int v;
void f (int i, ...)
{
  v++;
}
int main (void) { f (1); return 0; }
-------------------------------------------------------------------------------
gcc -o 1 1.c -Wall -g
FAIL gcc (GCC) 4.6.0 20110126 (experimental)
FAIL gcc-4.6.0-0.3.fc15.x86_64
PASS gcc (GCC) 4.5.3 20110124 (prerelease)
PASS gcc-4.5.1-4.fc14.x86_64
GNU gdb (GDB) 7.2.50.20110125-cvs

FAIL:
gdb -nx ./1 -ex 'b f' -ex r
Starting program: .../1 
<no breakpoint hit!>
Program exited normally.

PASS:
gdb -nx ./1 -ex 'b f' -ex r
Starting program: .../1 
Breakpoint 1, f (i=1) at 1.c:4
4      v++;


GDB workaround is in the GDB PR above but it touches .debug_line parsing which
is sensitive due to missing DWARF prologue end markers - wouldn't a GCC fix be
better?

  Extended opcode 2: set Address to 0x400454
  Special opcode 7: advance Address by 0 to 0x400454 and Line by 2 to 3
  Advance PC by 47 to 0x400483
  Special opcode 5: advance Address by 0 to 0x400483 and Line by 0 to 3
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^######^^^^^^^^^^^^^^^^^^^^######^^^^
  Advance PC by 38 to 0x4004a9
  Special opcode 6: advance Address by 0 to 0x4004a9 and Line by 1 to 4

The marked line causes GDB prologue-end detection heuristics to fail.
The marked line should be removed.


0000000000400454 <f>:
int v;
void f (int i, ...)
{
  400454:       55                      push   %rbp
  400455:       48 89 e5                mov    %rsp,%rbp
  400458:       48 83 ec 48             sub    $0x48,%rsp
  40045c:       48 89 b5 58 ff ff ff    mov    %rsi,-0xa8(%rbp)
  400463:       48 89 95 60 ff ff ff    mov    %rdx,-0xa0(%rbp)
  40046a:       48 89 8d 68 ff ff ff    mov    %rcx,-0x98(%rbp)
  400471:       4c 89 85 70 ff ff ff    mov    %r8,-0x90(%rbp)
  400478:       4c 89 8d 78 ff ff ff    mov    %r9,-0x88(%rbp)
  40047f:       84 c0                   test   %al,%al
  400481:       74 20                   je     4004a3 <f+0x4f>
========= Wrong marker - not hit.
  400483:       0f 29 45 80             movaps %xmm0,-0x80(%rbp)
  400487:       0f 29 4d 90             movaps %xmm1,-0x70(%rbp)
  40048b:       0f 29 55 a0             movaps %xmm2,-0x60(%rbp)
  40048f:       0f 29 5d b0             movaps %xmm3,-0x50(%rbp)
  400493:       0f 29 65 c0             movaps %xmm4,-0x40(%rbp)
  400497:       0f 29 6d d0             movaps %xmm5,-0x30(%rbp)
  40049b:       0f 29 75 e0             movaps %xmm6,-0x20(%rbp)
  40049f:       0f 29 7d f0             movaps %xmm7,-0x10(%rbp)
  4004a3:       89 bd 4c ff ff ff       mov    %edi,-0xb4(%rbp)
========= Correct prologue end would be here.
  v++;
  4004a9:       8b 05 f1 03 20 00       mov    0x2003f1(%rip),%eax        #
6008a0 <v>
  4004af:       83 c0 01                add    $0x1,%eax
  4004b2:       89 05 e8 03 20 00       mov    %eax,0x2003e8(%rip)        #
6008a0 <v>
}
  4004b8:       c9                      leaveq 
  4004b9:       c3                      retq


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.6 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
@ 2011-02-13 17:44 ` jsm28 at gcc dot gnu.org
  2011-02-13 17:53 ` jsm28 at gcc dot gnu.org
                   ` (23 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jsm28 at gcc dot gnu.org @ 2011-02-13 17:44 UTC (permalink / raw)
  To: gcc-bugs

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

Joseph S. Myers <jsm28 at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.6.0


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.6 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
  2011-02-13 17:44 ` [Bug debug/47471] [4.6 Regression] " jsm28 at gcc dot gnu.org
@ 2011-02-13 17:53 ` jsm28 at gcc dot gnu.org
  2011-03-25 20:02 ` [Bug debug/47471] [4.6/4.7 " jakub at gcc dot gnu.org
                   ` (22 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jsm28 at gcc dot gnu.org @ 2011-02-13 17:53 UTC (permalink / raw)
  To: gcc-bugs

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

Joseph S. Myers <jsm28 at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P4


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.6/4.7 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
  2011-02-13 17:44 ` [Bug debug/47471] [4.6 Regression] " jsm28 at gcc dot gnu.org
  2011-02-13 17:53 ` jsm28 at gcc dot gnu.org
@ 2011-03-25 20:02 ` jakub at gcc dot gnu.org
  2011-03-28 20:11 ` dodji at gcc dot gnu.org
                   ` (21 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-03-25 20:02 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.6.0                       |4.6.1

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-25 19:52:47 UTC ---
GCC 4.6.0 is being released, adjusting target milestone.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.6/4.7 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (2 preceding siblings ...)
  2011-03-25 20:02 ` [Bug debug/47471] [4.6/4.7 " jakub at gcc dot gnu.org
@ 2011-03-28 20:11 ` dodji at gcc dot gnu.org
  2011-03-29 15:48 ` dodji at gcc dot gnu.org
                   ` (20 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: dodji at gcc dot gnu.org @ 2011-03-28 20:11 UTC (permalink / raw)
  To: gcc-bugs

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

Dodji Seketeli <dodji at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2011.03.28 19:46:26
                 CC|dodji at gcc dot gnu.org    |
         AssignedTo|unassigned at gcc dot       |dodji at gcc dot gnu.org
                   |gnu.org                     |
     Ever Confirmed|0                           |1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.6/4.7 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (3 preceding siblings ...)
  2011-03-28 20:11 ` dodji at gcc dot gnu.org
@ 2011-03-29 15:48 ` dodji at gcc dot gnu.org
  2011-03-29 17:52 ` jan.kratochvil at redhat dot com
                   ` (19 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: dodji at gcc dot gnu.org @ 2011-03-29 15:48 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Dodji Seketeli <dodji at gcc dot gnu.org> 2011-03-29 15:24:07 UTC ---
I believe the issue is that for that source code, GCC emits two
identical .loc asm directives for line 3.  In theory I don't thing
doing that would be wrong.

But in practise the second .loc directive triggers a special opcode in
the generated line program that increments the line with an increment
of zero; it also increments the current program address with a
increment of zero.  And that happens before the first line that
doesn't belong to the prologue.

That seems to break GDB's heuristic, and is also a bit of bloat.

The patch below avoids emitting two identical consecutive line number
debug information and seems to fix the issue for me.  I am currently
regression-testing it.

>From eb1450a263a4e50b43132ef9b914f49a971c8e9d Mon Sep 17 00:00:00 2001
From: Dodji Seketeli <dodji@redhat.com>
Date: Tue, 29 Mar 2011 16:56:20 +0200
Subject: [PATCH] PR debug/47471

gcc/
    * dwarf2out.c (dwarf2out_source_line):  Avoid emitting two
    identical contiguous .loc asm directive.

gcc/testsuite/
    * gcc.dg/debug/dwarf2/line-prog-1.c: New test.
---
 gcc/dwarf2out.c                                 |   33 +++++++++++++++-------
 gcc/testsuite/gcc.dg/debug/dwarf2/line-prog-1.c |   25 +++++++++++++++++
 2 files changed, 47 insertions(+), 11 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/debug/dwarf2/line-prog-1.c

diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 7803ab7..b350f43 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -22068,6 +22068,8 @@ dwarf2out_source_line (unsigned int line, const char
*filename,
       && line != 0)
     {
       int file_num = maybe_emit_file (lookup_filename (filename));
+      static int prev_file_num;
+      static unsigned int prev_line;

       switch_to_section (current_function_section ());

@@ -22078,19 +22080,28 @@ dwarf2out_source_line (unsigned int line, const char
*filename,

       if (DWARF2_ASM_LINE_DEBUG_INFO)
     {
-      /* Emit the .loc directive understood by GNU as.  */
-      fprintf (asm_out_file, "\t.loc %d %d 0", file_num, line);
-      if (is_stmt != last_is_stmt)
+      static int prev_file_num;
+      static unsigned int prev_line;
+      if (prev_file_num != file_num
+          || prev_line != line)
         {
-          fprintf (asm_out_file, " is_stmt %d", is_stmt ? 1 : 0);
-          last_is_stmt = is_stmt;
-        }
-      if (SUPPORTS_DISCRIMINATOR && discriminator != 0)
-        fprintf (asm_out_file, " discriminator %d", discriminator);
-      fputc ('\n', asm_out_file);
+          /* Emit the .loc directive understood by GNU as.  */
+          fprintf (asm_out_file, "\t.loc %d %d 0", file_num, line);
+          if (is_stmt != last_is_stmt)
+        {
+          fprintf (asm_out_file, " is_stmt %d", is_stmt ? 1 : 0);
+          last_is_stmt = is_stmt;
+        }
+          if (SUPPORTS_DISCRIMINATOR && discriminator != 0)
+        fprintf (asm_out_file, " discriminator %d", discriminator);
+          fputc ('\n', asm_out_file);
+
+          /* Indicate that line number info exists.  */
+          line_info_table_in_use++;

-      /* Indicate that line number info exists.  */
-      line_info_table_in_use++;
+          prev_file_num = file_num;
+          prev_line = line;
+        }
     }
       else if (function_section (current_function_decl) != text_section)
     {
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/line-prog-1.c
b/gcc/testsuite/gcc.dg/debug/dwarf2/line-prog-1.c
new file mode 100644
index 0000000..63637dc
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/line-prog-1.c
@@ -0,0 +1,25 @@
+/*
+  Origin: PR debug/47471
+  { dg-options "-g -dA" }
+ */
+
+int v;
+void f (int i, ...)
+{
+  v++;
+}
+
+int
+main (void)
+{
+  f (1);
+  return 0;
+}
+
+/* We want to have only one .loc directive that points to the opening
+   curly bracket of the definition of function f, at line 8.  */
+
+/*
+  { dg-final { scan-assembler-times "\.loc 1 8 0" 1 } }
+
+ */
-- 
1.7.3.4


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.6/4.7 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (4 preceding siblings ...)
  2011-03-29 15:48 ` dodji at gcc dot gnu.org
@ 2011-03-29 17:52 ` jan.kratochvil at redhat dot com
  2011-03-29 18:09 ` jan.kratochvil at redhat dot com
                   ` (18 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jan.kratochvil at redhat dot com @ 2011-03-29 17:52 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Jan Kratochvil <jan.kratochvil at redhat dot com> 2011-03-29 17:35:43 UTC ---
(In reply to comment #2)

The patch has regressions, even against: GNU C 4.6.1 20110329 (prerelease)      
One of many:
-PASS: gdb.base/break.exp: run until quoted breakpoint
+FAIL: gdb.base/break.exp: run until quoted breakpoint

0000000000400783 <marker2>:
int marker2 (a) int a; { return (1); }  /* set breakpoint 9 here */
  400783:       55                      push   %rbp
  400784:       48 89 e5                mov    %rsp,%rbp
  400787:       89 7d fc                mov    %edi,-0x4(%rbp)
  40078a:       b8 01 00 00 00          mov    $0x1,%eax
  40078f:       5d                      pop    %rbp
  400790:       c3                      retq

FSF GCC correctly sets the prologue line boundary:
-  Special opcode 104: advance Address by 7 to 0x400783 and Line by 1 to 47
-  Special opcode 103: advance Address by 7 to 0x40078a and Line by 0 to 47
-  Special opcode 104: advance Address by 7 to 0x400791 and Line by 1 to 48

but the patched FSF GCC does not:
+  Special opcode 160: advance Address by 11 to 0x400783 and Line by 1 to 47
+  Special opcode 202: advance Address by 14 to 0x400791 and Line by 1 to 48

GCC could also start emitting DW_LNS_set_prologue_end (GDB cannot parse it yet,
though) instead of these line number magics.  Unfortunately the prologue end is
still needed for GDB as during -O0 -g the VTA is not in effect and
    <50a>   DW_AT_location    : 2 byte block: 91 6c     (DW_OP_fbreg: -20)
is in such case invalid at the entry PC (0x400783).


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.6/4.7 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (5 preceding siblings ...)
  2011-03-29 17:52 ` jan.kratochvil at redhat dot com
@ 2011-03-29 18:09 ` jan.kratochvil at redhat dot com
  2011-06-27 15:51 ` jakub at gcc dot gnu.org
                   ` (17 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jan.kratochvil at redhat dot com @ 2011-03-29 18:09 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Jan Kratochvil <jan.kratochvil at redhat dot com> 2011-03-29 17:36:47 UTC ---
(In reply to comment #2)

Please always attach the patch(es), I have tested the patch you mailed me, not
the one copy-pasted here.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.6/4.7 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (6 preceding siblings ...)
  2011-03-29 18:09 ` jan.kratochvil at redhat dot com
@ 2011-06-27 15:51 ` jakub at gcc dot gnu.org
  2011-09-19 14:09 ` philipp at marek dot priv.at
                   ` (16 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-06-27 15:51 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.6.1                       |4.6.2

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-27 12:33:02 UTC ---
GCC 4.6.1 is being released.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.6/4.7 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (7 preceding siblings ...)
  2011-06-27 15:51 ` jakub at gcc dot gnu.org
@ 2011-09-19 14:09 ` philipp at marek dot priv.at
  2011-09-19 14:10 ` jan.kratochvil at redhat dot com
                   ` (15 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: philipp at marek dot priv.at @ 2011-09-19 14:09 UTC (permalink / raw)
  To: gcc-bugs

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

philipp at marek dot priv.at changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |philipp at marek dot
                   |                            |priv.at

--- Comment #6 from philipp at marek dot priv.at 2011-09-19 13:53:18 UTC ---
Is there a chance to get this fixed?
I've got a fair number of setups where GDB gets a number of breakpoints set on
startup, and some of these don't work anymore ...

I've got gcc=4:4.6.1-2 and gdb=7.3-1.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.6/4.7 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (8 preceding siblings ...)
  2011-09-19 14:09 ` philipp at marek dot priv.at
@ 2011-09-19 14:10 ` jan.kratochvil at redhat dot com
  2011-10-26 18:06 ` jakub at gcc dot gnu.org
                   ` (14 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jan.kratochvil at redhat dot com @ 2011-09-19 14:10 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Jan Kratochvil <jan.kratochvil at redhat dot com> 2011-09-19 13:56:39 UTC ---
FYI a workaround is now checked in to FSF GDB HEAD:
http://sourceware.org/ml/gdb-patches/2011-09/msg00140.html
I confirm gdb-7.3 / 7.3.1 does not have the workaround and gdb-7.4 is far away.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.6/4.7 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (9 preceding siblings ...)
  2011-09-19 14:10 ` jan.kratochvil at redhat dot com
@ 2011-10-26 18:06 ` jakub at gcc dot gnu.org
  2012-03-01 15:15 ` jakub at gcc dot gnu.org
                   ` (13 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-10-26 18:06 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.6.2                       |4.6.3

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-10-26 17:13:46 UTC ---
GCC 4.6.2 is being released.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.6/4.7 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (10 preceding siblings ...)
  2011-10-26 18:06 ` jakub at gcc dot gnu.org
@ 2012-03-01 15:15 ` jakub at gcc dot gnu.org
  2013-04-12 15:18 ` [Bug debug/47471] [4.7/4.8/4.9 " jakub at gcc dot gnu.org
                   ` (12 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-03-01 15:15 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.6.3                       |4.6.4

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-01 14:38:52 UTC ---
GCC 4.6.3 is being released.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.7/4.8/4.9 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (11 preceding siblings ...)
  2012-03-01 15:15 ` jakub at gcc dot gnu.org
@ 2013-04-12 15:18 ` jakub at gcc dot gnu.org
  2013-12-03 16:46 ` psmith at gnu dot org
                   ` (11 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-04-12 15:18 UTC (permalink / raw)
  To: gcc-bugs


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.6.4                       |4.7.4

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-04-12 15:17:00 UTC ---
GCC 4.6.4 has been released and the branch has been closed.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.7/4.8/4.9 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (12 preceding siblings ...)
  2013-04-12 15:18 ` [Bug debug/47471] [4.7/4.8/4.9 " jakub at gcc dot gnu.org
@ 2013-12-03 16:46 ` psmith at gnu dot org
  2014-06-12 13:49 ` [Bug debug/47471] [4.7/4.8/4.9/4.10 " rguenth at gcc dot gnu.org
                   ` (10 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: psmith at gnu dot org @ 2013-12-03 16:46 UTC (permalink / raw)
  To: gcc-bugs

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

Paul Smith <psmith at gnu dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |psmith at gnu dot org

--- Comment #11 from Paul Smith <psmith at gnu dot org> ---
See also https://sourceware.org/bugzilla/show_bug.cgi?id=16280 which has a
repro case for C++ inline functions on x86_64 (very latest GCC 4.8.2 and GDB
7.6.1 releases).


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.7/4.8/4.9/4.10 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (13 preceding siblings ...)
  2013-12-03 16:46 ` psmith at gnu dot org
@ 2014-06-12 13:49 ` rguenth at gcc dot gnu.org
  2014-12-19 13:34 ` [Bug debug/47471] [4.8/4.9/5 " jakub at gcc dot gnu.org
                   ` (9 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-06-12 13:49 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47471

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.7.4                       |4.8.4

--- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> ---
The 4.7 branch is being closed, moving target milestone to 4.8.4.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.8/4.9/5 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (14 preceding siblings ...)
  2014-06-12 13:49 ` [Bug debug/47471] [4.7/4.8/4.9/4.10 " rguenth at gcc dot gnu.org
@ 2014-12-19 13:34 ` jakub at gcc dot gnu.org
  2015-06-23  8:26 ` [Bug debug/47471] [4.8/4.9/5/6 " rguenth at gcc dot gnu.org
                   ` (8 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-12-19 13:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47471

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.8.4                       |4.8.5

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 4.8.4 has been released.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.8/4.9/5/6 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (15 preceding siblings ...)
  2014-12-19 13:34 ` [Bug debug/47471] [4.8/4.9/5 " jakub at gcc dot gnu.org
@ 2015-06-23  8:26 ` rguenth at gcc dot gnu.org
  2015-06-26 20:01 ` [Bug debug/47471] [4.9/5/6 " jakub at gcc dot gnu.org
                   ` (7 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-06-23  8:26 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47471

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.8.5                       |4.9.3

--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> ---
The gcc-4_8-branch is being closed, re-targeting regressions to 4.9.3.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.9/5/6 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (16 preceding siblings ...)
  2015-06-23  8:26 ` [Bug debug/47471] [4.8/4.9/5/6 " rguenth at gcc dot gnu.org
@ 2015-06-26 20:01 ` jakub at gcc dot gnu.org
  2015-06-26 20:31 ` jakub at gcc dot gnu.org
                   ` (6 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-06-26 20:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47471

--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 4.9.3 has been released.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [4.9/5/6 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (17 preceding siblings ...)
  2015-06-26 20:01 ` [Bug debug/47471] [4.9/5/6 " jakub at gcc dot gnu.org
@ 2015-06-26 20:31 ` jakub at gcc dot gnu.org
  2021-05-14  9:46 ` [Bug debug/47471] [9/10/11/12 " jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-06-26 20:31 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47471

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.9.3                       |4.9.4


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [9/10/11/12 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (18 preceding siblings ...)
  2015-06-26 20:31 ` jakub at gcc dot gnu.org
@ 2021-05-14  9:46 ` jakub at gcc dot gnu.org
  2021-06-01  8:05 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-05-14  9:46 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47471

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|8.5                         |9.4

--- Comment #20 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 8 branch is being closed.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [9/10/11/12 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (19 preceding siblings ...)
  2021-05-14  9:46 ` [Bug debug/47471] [9/10/11/12 " jakub at gcc dot gnu.org
@ 2021-06-01  8:05 ` rguenth at gcc dot gnu.org
  2022-05-27  9:34 ` [Bug debug/47471] [10/11/12/13 " rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-01  8:05 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47471

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|9.4                         |9.5

--- Comment #21 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 9.4 is being released, retargeting bugs to GCC 9.5.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [10/11/12/13 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (20 preceding siblings ...)
  2021-06-01  8:05 ` rguenth at gcc dot gnu.org
@ 2022-05-27  9:34 ` rguenth at gcc dot gnu.org
  2022-06-28 10:29 ` jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-05-27  9:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47471

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|9.5                         |10.4

--- Comment #22 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 9 branch is being closed

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [10/11/12/13 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (21 preceding siblings ...)
  2022-05-27  9:34 ` [Bug debug/47471] [10/11/12/13 " rguenth at gcc dot gnu.org
@ 2022-06-28 10:29 ` jakub at gcc dot gnu.org
  2023-01-30 14:26 ` vries at gcc dot gnu.org
  2023-02-01  7:09 ` jan at jankratochvil dot net
  24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-06-28 10:29 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47471

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.4                        |10.5

--- Comment #23 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 10.4 is being released, retargeting bugs to GCC 10.5.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [10/11/12/13 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (22 preceding siblings ...)
  2022-06-28 10:29 ` jakub at gcc dot gnu.org
@ 2023-01-30 14:26 ` vries at gcc dot gnu.org
  2023-02-01  7:09 ` jan at jankratochvil dot net
  24 siblings, 0 replies; 26+ messages in thread
From: vries at gcc dot gnu.org @ 2023-01-30 14:26 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47471

Tom de Vries <vries at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vries at gcc dot gnu.org

--- Comment #24 from Tom de Vries <vries at gcc dot gnu.org> ---
I can reproduce this with gcc 4.8.5:
...
f:
.LFB0:
        .file 1 "test.c"
        .loc 1 3 0
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        subq    $60, %rsp
        movq    %rsi, -168(%rbp)
        movq    %rdx, -160(%rbp)
        movq    %rcx, -152(%rbp)
        movq    %r8, -144(%rbp)
        movq    %r9, -136(%rbp)
        testb   %al, %al
        je      .L2
        .loc 1 3 0
        movaps  %xmm0, -128(%rbp)
        movaps  %xmm1, -112(%rbp)
        movaps  %xmm2, -96(%rbp)
        movaps  %xmm3, -80(%rbp)
        movaps  %xmm4, -64(%rbp)
        movaps  %xmm5, -48(%rbp)
        movaps  %xmm6, -32(%rbp)
        movaps  %xmm7, -16(%rbp)
.L2:
        movl    %edi, -180(%rbp)
        .loc 1 4 0
        movl    v(%rip), %eax
...

But with gcc 7.5.0, I get:
...
f:
.LFB0:
        .file 1 "test.c"
        .loc 1 3 0
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        subq    $72, %rsp
        movl    %edi, -180(%rbp)
        movq    %rsi, -168(%rbp)
        movq    %rdx, -160(%rbp)
        movq    %rcx, -152(%rbp)
        movq    %r8, -144(%rbp)
        movq    %r9, -136(%rbp)
        testb   %al, %al
        je      .L3
        movaps  %xmm0, -128(%rbp)
        movaps  %xmm1, -112(%rbp)
        movaps  %xmm2, -96(%rbp)
        movaps  %xmm3, -80(%rbp)
        movaps  %xmm4, -64(%rbp)
        movaps  %xmm5, -48(%rbp)
        movaps  %xmm6, -32(%rbp)
        movaps  %xmm7, -16(%rbp)
.L3:
        .loc 1 4 0
        movl    v(%rip), %eax
        addl    $1, %eax
        movl    %eax, v(%rip)
...

So, isn't this fixed?

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Bug debug/47471] [10/11/12/13 Regression] stdarg functions extraneous too-early prologue end
  2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
                   ` (23 preceding siblings ...)
  2023-01-30 14:26 ` vries at gcc dot gnu.org
@ 2023-02-01  7:09 ` jan at jankratochvil dot net
  24 siblings, 0 replies; 26+ messages in thread
From: jan at jankratochvil dot net @ 2023-02-01  7:09 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47471

Jan Kratochvil <jan at jankratochvil dot net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #25 from Jan Kratochvil <jan at jankratochvil dot net> ---
I confirm it is fixed with: gcc-12.2.1-4.fc36.x86_64
It would be nice to bisect why but I did not.

  [0x00000038]  Extended opcode 2: set Address to 0x401106
  [0x00000043]  Special opcode 7: advance Address by 0 to 0x401106 and Line by
2 to 3
  [0x00000046]  Advance PC by 85 to 0x40115b
  [0x00000048]  Special opcode 6: advance Address by 0 to 0x40115b and Line by
1 to 4

0000000000401106 <f>:
/home/jkratoch/t/gcc47471.c:3
  401106:       55                      push   %rbp
  401107:       48 89 e5                mov    %rsp,%rbp
  40110a:       48 83 ec 48             sub    $0x48,%rsp
  40110e:       89 bd 4c ff ff ff       mov    %edi,-0xb4(%rbp)
  401114:       48 89 b5 58 ff ff ff    mov    %rsi,-0xa8(%rbp)
  40111b:       48 89 95 60 ff ff ff    mov    %rdx,-0xa0(%rbp)
  401122:       48 89 8d 68 ff ff ff    mov    %rcx,-0x98(%rbp)
  401129:       4c 89 85 70 ff ff ff    mov    %r8,-0x90(%rbp)
  401130:       4c 89 8d 78 ff ff ff    mov    %r9,-0x88(%rbp)
  401137:       84 c0                   test   %al,%al
  401139:       74 20                   je     40115b <f+0x55>
  40113b:       0f 29 45 80             movaps %xmm0,-0x80(%rbp)
  40113f:       0f 29 4d 90             movaps %xmm1,-0x70(%rbp)
  401143:       0f 29 55 a0             movaps %xmm2,-0x60(%rbp)
  401147:       0f 29 5d b0             movaps %xmm3,-0x50(%rbp)
  40114b:       0f 29 65 c0             movaps %xmm4,-0x40(%rbp)
  40114f:       0f 29 6d d0             movaps %xmm5,-0x30(%rbp)
  401153:       0f 29 75 e0             movaps %xmm6,-0x20(%rbp)
  401157:       0f 29 7d f0             movaps %xmm7,-0x10(%rbp)
/home/jkratoch/t/gcc47471.c:4
  40115b:       8b 05 bf 2e 00 00       mov    0x2ebf(%rip),%eax        #
404020 <v>

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2023-02-01  7:09 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-26 11:05 [Bug debug/47471] New: stdarg functions extraneous too-early prologue end jan.kratochvil at redhat dot com
2011-02-13 17:44 ` [Bug debug/47471] [4.6 Regression] " jsm28 at gcc dot gnu.org
2011-02-13 17:53 ` jsm28 at gcc dot gnu.org
2011-03-25 20:02 ` [Bug debug/47471] [4.6/4.7 " jakub at gcc dot gnu.org
2011-03-28 20:11 ` dodji at gcc dot gnu.org
2011-03-29 15:48 ` dodji at gcc dot gnu.org
2011-03-29 17:52 ` jan.kratochvil at redhat dot com
2011-03-29 18:09 ` jan.kratochvil at redhat dot com
2011-06-27 15:51 ` jakub at gcc dot gnu.org
2011-09-19 14:09 ` philipp at marek dot priv.at
2011-09-19 14:10 ` jan.kratochvil at redhat dot com
2011-10-26 18:06 ` jakub at gcc dot gnu.org
2012-03-01 15:15 ` jakub at gcc dot gnu.org
2013-04-12 15:18 ` [Bug debug/47471] [4.7/4.8/4.9 " jakub at gcc dot gnu.org
2013-12-03 16:46 ` psmith at gnu dot org
2014-06-12 13:49 ` [Bug debug/47471] [4.7/4.8/4.9/4.10 " rguenth at gcc dot gnu.org
2014-12-19 13:34 ` [Bug debug/47471] [4.8/4.9/5 " jakub at gcc dot gnu.org
2015-06-23  8:26 ` [Bug debug/47471] [4.8/4.9/5/6 " rguenth at gcc dot gnu.org
2015-06-26 20:01 ` [Bug debug/47471] [4.9/5/6 " jakub at gcc dot gnu.org
2015-06-26 20:31 ` jakub at gcc dot gnu.org
2021-05-14  9:46 ` [Bug debug/47471] [9/10/11/12 " jakub at gcc dot gnu.org
2021-06-01  8:05 ` rguenth at gcc dot gnu.org
2022-05-27  9:34 ` [Bug debug/47471] [10/11/12/13 " rguenth at gcc dot gnu.org
2022-06-28 10:29 ` jakub at gcc dot gnu.org
2023-01-30 14:26 ` vries at gcc dot gnu.org
2023-02-01  7:09 ` jan at jankratochvil dot net

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).