]>
Commit | Line | Data |
---|---|---|
3199188d JB |
1 | --- gdb-6.3/gdb/dwarf2read.c.orig 2004-10-16 02:41:00.000000000 +0200 |
2 | +++ gdb-6.3/gdb/dwarf2read.c 2005-04-29 21:08:24.974314896 +0200 | |
3 | @@ -913,6 +913,8 @@ | |
4 | ||
5 | static void read_enumeration_type (struct die_info *, struct dwarf2_cu *); | |
6 | ||
7 | +static void read_set_type (struct die_info *, struct dwarf2_cu *); | |
8 | + | |
9 | static void process_enumeration_scope (struct die_info *, struct dwarf2_cu *); | |
10 | ||
11 | static struct type *dwarf_base_type (int, int, struct dwarf2_cu *); | |
12 | @@ -4009,6 +4011,24 @@ | |
13 | return new_prefix; | |
14 | } | |
15 | ||
16 | + | |
17 | +static void | |
18 | +read_set_type (struct die_info * die, struct dwarf2_cu *cu) | |
19 | +{ | |
20 | + struct type *domain_type; | |
21 | + | |
22 | + /* Return if we've already decoded this type. */ | |
23 | + if (die->type) | |
24 | + { | |
25 | + return; | |
26 | + } | |
27 | + | |
28 | + domain_type = die_type (die, cu); | |
29 | + | |
30 | + die->type = create_set_type (NULL, domain_type); | |
31 | + | |
32 | +} | |
33 | + | |
34 | /* Given a pointer to a die which begins an enumeration, process all | |
35 | the dies that define the members of the enumeration, and create the | |
36 | symbol for the enumeration type. | |
37 | @@ -6096,9 +6116,11 @@ | |
38 | case DW_LANG_Ada95: | |
39 | cu->language = language_ada; | |
40 | break; | |
41 | + case DW_LANG_Pascal83: | |
42 | + cu->language = language_pascal; | |
43 | + break; | |
44 | case DW_LANG_Cobol74: | |
45 | case DW_LANG_Cobol85: | |
46 | - case DW_LANG_Pascal83: | |
47 | case DW_LANG_Modula2: | |
48 | default: | |
49 | cu->language = language_minimal; | |
50 | @@ -6861,6 +6883,7 @@ | |
51 | case DW_TAG_structure_type: | |
52 | case DW_TAG_union_type: | |
53 | case DW_TAG_enumeration_type: | |
54 | + case DW_TAG_set_type: | |
55 | SYMBOL_CLASS (sym) = LOC_TYPEDEF; | |
56 | SYMBOL_DOMAIN (sym) = STRUCT_DOMAIN; | |
57 | ||
58 | @@ -7182,6 +7205,9 @@ | |
59 | case DW_TAG_enumeration_type: | |
60 | read_enumeration_type (die, cu); | |
61 | break; | |
62 | + case DW_TAG_set_type: | |
63 | + read_set_type (die, cu); | |
64 | + break; | |
65 | case DW_TAG_subprogram: | |
66 | case DW_TAG_subroutine_type: | |
67 | read_subroutine_type (die, cu); |