]>
Commit | Line | Data |
---|---|---|
89708594 CT |
1 | /* { dg-do compile { target *-*-darwin* } } */ |
2 | /* { dg-options "-O0 -gdwarf-2 -dA" } */ | |
3 | /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */ | |
4 | /* { dg-final { scan-assembler "__debug_pubtypes" } } */ | |
bbafacb6 | 5 | /* { dg-final { scan-assembler "long+\[ \t\]+0x13b+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */ |
89708594 CT |
6 | /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */ |
7 | /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */ | |
8 | /* { dg-final { scan-assembler-not "\"list_name_type\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */ | |
9 | ||
10 | #include <stdlib.h> | |
11 | #include <stdio.h> | |
ec94f224 | 12 | #include <string.h> |
89708594 CT |
13 | |
14 | struct used_struct | |
15 | { | |
16 | int key; | |
17 | char *name; | |
18 | }; | |
19 | ||
20 | struct unused_struct | |
21 | { | |
22 | int key1; | |
23 | int f2; | |
24 | double f3; | |
25 | char *f4; | |
26 | struct unused_struct *next; | |
27 | }; | |
28 | ||
29 | void | |
30 | foo (struct used_struct *list) | |
31 | { | |
32 | enum list_name_type { | |
33 | boy_name, | |
34 | girl_name, | |
35 | unknown | |
36 | }; | |
37 | ||
38 | int b_count = 0; | |
39 | int g_count = 0; | |
40 | int i; | |
41 | enum list_name_type *enum_list; | |
42 | ||
43 | enum_list = (enum list_name_type *) malloc (10 * sizeof (enum list_name_type)); | |
44 | ||
45 | for (i = 0; i < 10; i++) | |
46 | { | |
47 | if (strncmp (list[i].name, "Alice", 5) == 0) | |
48 | { | |
49 | enum_list[i] = girl_name; | |
50 | g_count++; | |
51 | } | |
52 | else if (strncmp (list[i].name, "David", 5) == 0) | |
53 | { | |
54 | enum_list[i] = boy_name; | |
55 | b_count++; | |
56 | } | |
57 | else | |
58 | enum_list[i] = unknown; | |
59 | } | |
60 | ||
61 | } | |
62 | ||
63 | int | |
64 | main (int argc, char **argv) | |
65 | { | |
66 | int i; | |
67 | struct used_struct *my_list; | |
68 | ||
69 | my_list = (struct used_struct *) malloc (10 * sizeof (struct used_struct)); | |
70 | ||
71 | for (i = 0; i < 10; i++) | |
72 | { | |
73 | my_list[i].key = i; | |
74 | my_list[i].name = (char *) malloc (11); | |
75 | sprintf (my_list[i].name, "Alice_%d", i); | |
76 | } | |
77 | ||
78 | foo (my_list); | |
79 | ||
80 | for (i = 0; i < 10; i++) | |
81 | fprintf (stdout, "Key: %d, Name: %s\n", my_list[i].key, my_list[i].name); | |
82 | ||
83 | return 0; | |
84 | } |