github.com/flyinox/gosm@v0.0.0-20171117061539-16768cb62077/src/debug/dwarf/testdata/typedef.c (about) 1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 /* 6 Linux ELF: 7 gcc -gdwarf-2 -m64 -c typedef.c && gcc -gdwarf-2 -m64 -o typedef.elf typedef.o 8 9 OS X Mach-O: 10 gcc -gdwarf-2 -m64 -c typedef.c -o typedef.macho 11 */ 12 #include <complex.h> 13 14 typedef volatile int* t_ptr_volatile_int; 15 typedef const char *t_ptr_const_char; 16 typedef long t_long; 17 typedef unsigned short t_ushort; 18 typedef int t_func_int_of_float_double(float, double); 19 typedef int (*t_ptr_func_int_of_float_double)(float, double); 20 typedef int (*t_ptr_func_int_of_float_complex)(float complex); 21 typedef int (*t_ptr_func_int_of_double_complex)(double complex); 22 typedef int (*t_ptr_func_int_of_long_double_complex)(long double complex); 23 typedef int *t_func_ptr_int_of_char_schar_uchar(char, signed char, unsigned char); 24 typedef void t_func_void_of_char(char); 25 typedef void t_func_void_of_void(void); 26 typedef void t_func_void_of_ptr_char_dots(char*, ...); 27 typedef struct my_struct { 28 volatile int vi; 29 char x : 1; 30 int y : 4; 31 int z[0]; 32 long long array[40]; 33 int zz[0]; 34 } t_my_struct; 35 typedef struct my_struct1 { 36 int zz [1]; 37 } t_my_struct1; 38 typedef union my_union { 39 volatile int vi; 40 char x : 1; 41 int y : 4; 42 long long array[40]; 43 } t_my_union; 44 typedef enum my_enum { 45 e1 = 1, 46 e2 = 2, 47 e3 = -5, 48 e4 = 1000000000000000LL, 49 } t_my_enum; 50 51 typedef struct list t_my_list; 52 struct list { 53 short val; 54 t_my_list *next; 55 }; 56 57 typedef struct tree { 58 struct tree *left, *right; 59 unsigned long long val; 60 } t_my_tree; 61 62 t_ptr_volatile_int *a2; 63 t_ptr_const_char **a3a; 64 t_long *a4; 65 t_ushort *a5; 66 t_func_int_of_float_double *a6; 67 t_ptr_func_int_of_float_double *a7; 68 t_func_ptr_int_of_char_schar_uchar *a8; 69 t_func_void_of_char *a9; 70 t_func_void_of_void *a10; 71 t_func_void_of_ptr_char_dots *a11; 72 t_my_struct *a12; 73 t_my_struct1 *a12a; 74 t_my_union *a12b; 75 t_my_enum *a13; 76 t_my_list *a14; 77 t_my_tree *a15; 78 t_ptr_func_int_of_float_complex *a16; 79 t_ptr_func_int_of_double_complex *a17; 80 t_ptr_func_int_of_long_double_complex *a18; 81 82 int main() 83 { 84 return 0; 85 }