1 /* Copyright 2002, 2003, 2004 2 Free Software Foundation, Inc. 3 4 This file is part of GDB. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2 of the License, or (at 9 your option) any later version. 10 11 This program is distributed in the hope that it will be useful, but 12 WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software 18 Foundation, Inc., 59 Temple Place - Suite 330, 19 Boston, MA 02111-1307, USA. */ 20 21 /* Test taken from GCC. Verify that we can print a structure containing 22 a complex number. */ 23 24 #include <stdlib.h> 25 26 typedef __complex__ float cf; 27 struct x { char c; cf f; } __attribute__ ((__packed__)); 28 struct unpacked_x { char c; cf f; }; 29 extern void f4 (struct unpacked_x*); 30 extern void f3 (void); 31 extern void f2 (struct x*); 32 extern void f1 (void); 33 int 34 main (void) 35 { 36 f1 (); 37 f3 (); 38 exit (0); 39 } 40 41 void 42 f1 (void) 43 { 44 struct x s; 45 s.f = 1; 46 s.c = 42; 47 f2 (&s); 48 } 49 50 void 51 f2 (struct x *y) 52 { 53 if (y->f != 1 || y->c != 42) 54 abort (); 55 } 56 57 void 58 f3 (void) 59 { 60 struct unpacked_x s; 61 s.f = 1; 62 s.c = 42; 63 f4 (&s); 64 } 65 66 void 67 f4 (struct unpacked_x *y) 68 { 69 if (y->f != 1 || y->c != 42) 70 abort (); 71 } 72