OSDN Git Service

modified: utilsrc/src/Admin/Makefile
[eos/others.git] / utilsrc / srcX86MAC64 / Admin / gdb-7.7.1 / gdb / testsuite / gdb.cp / cplabel.cc
1 /* This testcase is part of GDB, the GNU debugger.
2
3    Copyright 2012-2014 Free Software Foundation, Inc.
4
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 3 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
17
18 class foo
19 {
20 public:
21   static int bar (void)
22   {
23     int i = 5;
24     bool first = true;
25
26   to_the_top:  /* bar:to_the_top */
27     while (1)
28       {
29         if (i == 1)
30           {
31             if (first)
32               {
33                 first = false;
34                 goto to_the_top;
35               }
36             else
37               goto get_out_of_here;
38           }
39
40         --i;
41       }
42
43   get_out_of_here: /* bar:get_out_of_here */
44     return i;
45   }
46
47   int baz (int a)
48   {
49     int i = a;
50     bool first = true;
51
52   to_the_top: /* baz:to_the_top */
53     while (1)
54       {
55         if (i == 1)
56           {
57             if (first)
58               {
59                 first = false;
60                 goto to_the_top;
61               }
62             else
63               goto get_out_of_here;
64           }
65
66         --i;
67       }
68
69   get_out_of_here: /* baz:get_out_of_here */
70     return i;
71   }
72 };
73
74 int
75 main (void)
76 {
77   foo f;
78   return f.baz (foo::bar () + 3); 
79 }
80