• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/gdb/gdb/testsuite/gdb.base/
1/* Copyright 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
2
3   This file is part of GDB.
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/* Test taken from GCC.  Verify that we can print a structure containing
19   a complex number.  */
20
21#include <stdlib.h>
22
23typedef __complex__ float cf;
24struct x { char c; cf f; } __attribute__ ((__packed__));
25struct unpacked_x { char c; cf f; };
26extern void f4 (struct unpacked_x*);
27extern void f3 (void);
28extern void f2 (struct x*);
29extern void f1 (void);
30int
31main (void)
32{
33  f1 ();
34  f3 ();
35  exit (0);
36}
37
38void
39f1 (void)
40{
41  struct x s;
42  s.f = 1;
43  s.c = 42;
44  f2 (&s);
45}
46
47void
48f2 (struct x *y)
49{
50  if (y->f != 1 || y->c != 42)
51    abort ();
52}
53
54void
55f3 (void)
56{
57  struct unpacked_x s;
58  s.f = 1;
59  s.c = 42;
60  f4 (&s);
61}
62
63void
64f4 (struct unpacked_x *y)
65{
66  if (y->f != 1 || y->c != 42)
67    abort ();
68}
69