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

             Bug #: 52160
           Summary: gdb ignores line "bar: if(foo)goto bar;"
    Classification: Unclassified
           Product: gcc
           Version: 4.4.5
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: safinas...@mail.ru


foo.c:
-----------------------------------
#include <stdio.h>

int main()
{
        int foo;
        printf("Enter foo: ");
        scanf("%d", &foo);
bar:    if(foo)goto bar;
        return 0;
}
-----------------------------------
0:~# gcc -g foo.c
0:~# gdb a.out
GNU gdb (GDB) 7.0.1-debian
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /root/a.out...done.
(gdb) start
Temporary breakpoint 1 at 0x804842d: file foo.c, line 6.
Starting program: /root/a.out 

Temporary breakpoint 1, main () at foo.c:6
6               printf("Enter foo: ");
(gdb) n
7               scanf("%d", &foo);
(gdb) 
Enter foo: 0
9               return 0;
(gdb) q
A debugging session is active.

        Inferior 1 [process 21382] will be killed.

Quit anyway? (y or n) y
-----------------------------------
But gdb must say:

6               printf("Enter foo: ");
(gdb) n
7               scanf("%d", &foo);
(gdb) 
Enter foo: 0
8       bar:    if(foo)goto bar; 
(gdb) 
9               return 0;
-----------------------------------
0:~# gdb a.out
GNU gdb (GDB) 7.0.1-debian
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /root/a.out...done.
(gdb) start
Temporary breakpoint 1 at 0x804842d: file foo.c, line 6.
Starting program: /root/a.out 

Temporary breakpoint 1, main () at foo.c:6
6               printf("Enter foo: ");
(gdb) n
7               scanf("%d", &foo);
(gdb) 
Enter foo: 1
^C
Program received signal SIGINT, Interrupt.
0x08048458 in main () at foo.c:8
8       bar:    if(foo)goto bar;
(gdb) q
A debugging session is active.

        Inferior 1 [process 21399] will be killed.

Quit anyway? (y or n) y
-----------------------------------
But gdb must say:

6               printf("Enter foo: ");
(gdb) n
7               scanf("%d", &foo);
(gdb) 
Enter foo: 1
8       bar:    if(foo)goto bar; 
(gdb) 
^C
-----------------------------------
0:~# uname -a
Linux debian 2.6.32-5-686 #1 SMP Sat Oct 30 22:47:19 UTC 2010 i686 GNU/Linux
0:~# gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8'
--with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.4 --enable-shared --enable-multiarch
--enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls
--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc
--enable-targets=all --with-arch-32=i586 --with-tune=generic
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.4.5 (Debian 4.4.5-8)

Bug moved from http://sourceware.org/bugzilla/show_bug.cgi?id=12257

Reply via email to