* Makefile.in: Make check depend on all.
[deliverable/binutils-gdb.git] / gdb / partial-stab.h
CommitLineData
7e258d18 1/* Shared code to pre-read a stab (dbx-style), when building a psymtab.
c2e4669f
JG
2 Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992 Free Software Foundation,
3 Inc.
7e258d18
PB
4
5This file is part of GDB.
6
7This program is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program; if not, write to the Free Software
19Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
20
21/* The following need to be defined:
22 SET_NAMESTRING() --Set namestring to name of symbol.
23 CUR_SYMBOL_TYPE --Type code of current symbol.
24 CUR_SYMBOL_VALUE --Value field of current symbol. May be adjusted here.
25 */
26
7e258d18
PB
27/* End of macro definitions, now let's handle them symbols! */
28
29 switch (CUR_SYMBOL_TYPE)
30 {
31 char *p;
32 /*
33 * Standard, external, non-debugger, symbols
34 */
35
7e258d18
PB
36 case N_TEXT | N_EXT:
37 case N_NBTEXT | N_EXT:
2670f34d
JG
38 CUR_SYMBOL_VALUE += ANOFFSET (section_offsets, SECT_OFF_TEXT);
39 goto record_it;
40
41 case N_DATA | N_EXT:
7e258d18 42 case N_NBDATA | N_EXT:
2670f34d
JG
43 CUR_SYMBOL_VALUE += ANOFFSET (section_offsets, SECT_OFF_DATA);
44 goto record_it;
45
46 case N_BSS | N_EXT:
7e258d18 47 case N_NBBSS | N_EXT:
2670f34d
JG
48 case N_SETV | N_EXT: /* FIXME, is this in BSS? */
49 CUR_SYMBOL_VALUE += ANOFFSET (section_offsets, SECT_OFF_BSS);
50 goto record_it;
51
7e258d18 52 case N_ABS | N_EXT:
2670f34d 53 record_it:
aab77d5f 54#ifdef DBXREAD_ONLY
7e258d18
PB
55 SET_NAMESTRING();
56
57 bss_ext_symbol:
1ab3bf1b
JG
58 record_minimal_symbol (namestring, CUR_SYMBOL_VALUE,
59 CUR_SYMBOL_TYPE, objfile); /* Always */
aab77d5f 60#endif /* DBXREAD_ONLY */
7e258d18
PB
61 continue;
62
63 /* Standard, local, non-debugger, symbols */
64
65 case N_NBTEXT:
66
67 /* We need to be able to deal with both N_FN or N_TEXT,
68 because we have no way of knowing whether the sys-supplied ld
69 or GNU ld was used to make the executable. Sequents throw
70 in another wrinkle -- they renumbered N_FN. */
71
72 case N_FN:
73 case N_FN_SEQ:
74 case N_TEXT:
aab77d5f 75#ifdef DBXREAD_ONLY
2670f34d 76 CUR_SYMBOL_VALUE += ANOFFSET (section_offsets, SECT_OFF_TEXT);
7e258d18
PB
77 SET_NAMESTRING();
78 if ((namestring[0] == '-' && namestring[1] == 'l')
79 || (namestring [(nsl = strlen (namestring)) - 1] == 'o'
7da1e27d 80 && namestring [nsl - 2] == '.')
e0ba1d14 81#ifdef GDB_TARGET_IS_HPPA
7da1e27d
SG
82 /* some cooperation from gcc to get around ld stupidity */
83 || (namestring[0] == 'e' && !strcmp (namestring, "end_file."))
84#endif
85 )
7e258d18 86 {
e0ba1d14 87#ifndef GDB_TARGET_IS_HPPA
5e2e79f8 88 if (objfile -> ei.entry_point < CUR_SYMBOL_VALUE &&
2670f34d 89 objfile -> ei.entry_point >= last_o_file_start)
7e258d18 90 {
5e2e79f8
FF
91 objfile -> ei.entry_file_lowpc = last_o_file_start;
92 objfile -> ei.entry_file_highpc = CUR_SYMBOL_VALUE;
7e258d18 93 }
7da1e27d 94#endif
7e258d18
PB
95 if (past_first_source_file && pst
96 /* The gould NP1 uses low values for .o and -l symbols
97 which are not the address. */
369172bb 98 && CUR_SYMBOL_VALUE >= pst->textlow)
7e258d18
PB
99 {
100 END_PSYMTAB (pst, psymtab_include_list, includes_used,
101 symnum * symbol_size, CUR_SYMBOL_VALUE,
102 dependency_list, dependencies_used);
103 pst = (struct partial_symtab *) 0;
104 includes_used = 0;
105 dependencies_used = 0;
106 }
107 else
108 past_first_source_file = 1;
109 last_o_file_start = CUR_SYMBOL_VALUE;
110 }
aab77d5f 111#endif /* DBXREAD_ONLY */
7e258d18
PB
112 continue;
113
114 case N_DATA:
aab77d5f 115#ifdef DBXREAD_ONLY
2670f34d 116 CUR_SYMBOL_VALUE += ANOFFSET (section_offsets, SECT_OFF_DATA);
7e258d18
PB
117 SET_NAMESTRING ();
118 /* Check for __DYNAMIC, which is used by Sun shared libraries.
119 Record it even if it's local, not global, so we can find it.
de9bef49
JG
120 FIXME: this might want to check for _DYNAMIC and the current
121 symbol_leading_char. */
122 if (namestring[8] == 'C' && !strcmp ("__DYNAMIC", namestring))
123 goto record_it;
124
125 /* Same with virtual function tables, both global and static. */
126 {
127 char *tempstring = namestring;
128 if (tempstring[0] == bfd_get_symbol_leading_char (objfile->obfd))
129 tempstring++;
130 if (VTBL_PREFIX_P ((tempstring)))
131 goto record_it;
132 }
aab77d5f 133#endif /* DBXREAD_ONLY */
7e258d18
PB
134 continue;
135
136 case N_UNDF | N_EXT:
aab77d5f 137#ifdef DBXREAD_ONLY
7e258d18
PB
138 if (CUR_SYMBOL_VALUE != 0) {
139 /* This is a "Fortran COMMON" symbol. See if the target
140 environment knows where it has been relocated to. */
141
142 CORE_ADDR reladdr;
143
144 SET_NAMESTRING();
145 if (target_lookup_symbol (namestring, &reladdr)) {
146 continue; /* Error in lookup; ignore symbol for now. */
147 }
148 CUR_SYMBOL_TYPE ^= (N_BSS^N_UNDF); /* Define it as a bss-symbol */
149 CUR_SYMBOL_VALUE = reladdr;
150 goto bss_ext_symbol;
151 }
aab77d5f 152#endif /* DBXREAD_ONLY */
7e258d18 153 continue; /* Just undefined, not COMMON */
7e258d18 154
9342ecb9
JG
155 case N_UNDF:
156#ifdef DBXREAD_ONLY
157 if (processing_acc_compilation && bufp->n_strx == 1) {
bcbf9559
JG
158 /* Deal with relative offsets in the string table
159 used in ELF+STAB under Solaris. If we want to use the
160 n_strx field, which contains the name of the file,
161 we must adjust file_string_table_offset *before* calling
162 SET_NAMESTRING(). */
9342ecb9
JG
163 past_first_source_file = 1;
164 file_string_table_offset = next_file_string_table_offset;
165 next_file_string_table_offset =
166 file_string_table_offset + bufp->n_value;
167 if (next_file_string_table_offset < file_string_table_offset)
168 error ("string table offset backs up at %d", symnum);
169 /* FIXME -- replace error() with complaint. */
170 continue;
171 }
172#endif /* DBXREAD_ONLY */
173 continue;
174
7e258d18
PB
175 /* Lots of symbol types we can just ignore. */
176
7e258d18
PB
177 case N_ABS:
178 case N_BSS:
179 case N_NBDATA:
180 case N_NBBSS:
181 continue;
182
183 /* Keep going . . .*/
184
185 /*
186 * Special symbol types for GNU
187 */
188 case N_INDR:
189 case N_INDR | N_EXT:
190 case N_SETA:
191 case N_SETA | N_EXT:
192 case N_SETT:
193 case N_SETT | N_EXT:
194 case N_SETD:
195 case N_SETD | N_EXT:
196 case N_SETB:
197 case N_SETB | N_EXT:
198 case N_SETV:
199 continue;
200
201 /*
202 * Debugger symbols
203 */
204
205 case N_SO: {
206 unsigned long valu = CUR_SYMBOL_VALUE;
cdaa27e9
SG
207 static int prev_so_symnum = -10;
208 static int first_so_symnum;
c72af089 209 char *p;
7e258d18 210
cdaa27e9
SG
211 past_first_source_file = 1;
212
213 if (prev_so_symnum != symnum - 1)
214 { /* Here if prev stab wasn't N_SO */
215 first_so_symnum = symnum;
216
217 if (pst)
218 {
219 END_PSYMTAB (pst, psymtab_include_list, includes_used,
220 symnum * symbol_size, valu,
221 dependency_list, dependencies_used);
222 pst = (struct partial_symtab *) 0;
223 includes_used = 0;
224 dependencies_used = 0;
225 }
226 }
227
228 prev_so_symnum = symnum;
229
7e258d18
PB
230 /* End the current partial symtab and start a new one */
231
232 SET_NAMESTRING();
233
2670f34d 234 valu += ANOFFSET (section_offsets, SECT_OFF_TEXT);
7e258d18 235
c72af089
SG
236 /* Some compilers (including gcc) emit a pair of initial N_SOs.
237 The first one is a directory name; the second the file name.
238 If pst exists, is empty, and has a filename ending in '/',
239 we assume the previous N_SO was a directory name. */
240
323227fe 241 p = strrchr (namestring, '/');
c72af089 242 if (p && *(p+1) == '\000')
cdaa27e9 243 continue; /* Simply ignore directory name SOs */
c72af089
SG
244
245 /* Some other compilers (C++ ones in particular) emit useless
cdaa27e9
SG
246 SOs for non-existant .c files. We ignore all subsequent SOs that
247 immediately follow the first. */
248
249 if (!pst)
250 pst = START_PSYMTAB (objfile, section_offsets,
251 namestring, valu,
252 first_so_symnum * symbol_size,
253 objfile -> global_psymbols.next,
254 objfile -> static_psymbols.next);
7e258d18
PB
255 continue;
256 }
257
7e258d18 258 case N_BINCL:
aab77d5f 259#ifdef DBXREAD_ONLY
7e258d18
PB
260 /* Add this bincl to the bincl_list for future EXCLs. No
261 need to save the string; it'll be around until
262 read_dbx_symtab function returns */
263
264 SET_NAMESTRING();
265
266 add_bincl_to_list (pst, namestring, CUR_SYMBOL_VALUE);
267
268 /* Mark down an include file in the current psymtab */
269
270 psymtab_include_list[includes_used++] = namestring;
271 if (includes_used >= includes_allocated)
272 {
273 char **orig = psymtab_include_list;
274
275 psymtab_include_list = (char **)
276 alloca ((includes_allocated *= 2) *
277 sizeof (char *));
be772100
JG
278 memcpy ((PTR)psymtab_include_list, (PTR)orig,
279 includes_used * sizeof (char *));
7e258d18
PB
280 }
281
aab77d5f 282#endif /* DBXREAD_ONLY */
7e258d18 283 continue;
7e258d18
PB
284
285 case N_SOL:
286 /* Mark down an include file in the current psymtab */
287
288 SET_NAMESTRING();
289
290 /* In C++, one may expect the same filename to come round many
291 times, when code is coming alternately from the main file
292 and from inline functions in other files. So I check to see
293 if this is a file we've seen before -- either the main
294 source file, or a previously included file.
295
296 This seems to be a lot of time to be spending on N_SOL, but
297 things like "break c-exp.y:435" need to work (I
298 suppose the psymtab_include_list could be hashed or put
299 in a binary tree, if profiling shows this is a major hog). */
300 if (pst && !strcmp (namestring, pst->filename))
301 continue;
302 {
303 register int i;
304 for (i = 0; i < includes_used; i++)
305 if (!strcmp (namestring, psymtab_include_list[i]))
306 {
307 i = -1;
308 break;
309 }
310 if (i == -1)
311 continue;
312 }
313
314 psymtab_include_list[includes_used++] = namestring;
315 if (includes_used >= includes_allocated)
316 {
317 char **orig = psymtab_include_list;
318
319 psymtab_include_list = (char **)
320 alloca ((includes_allocated *= 2) *
321 sizeof (char *));
be772100
JG
322 memcpy ((PTR)psymtab_include_list, (PTR)orig,
323 includes_used * sizeof (char *));
7e258d18
PB
324 }
325 continue;
aab77d5f 326
7e258d18
PB
327 case N_LSYM: /* Typedef or automatic variable. */
328 case N_STSYM: /* Data seg var -- static */
329 case N_LCSYM: /* BSS " */
2670f34d 330 case N_ROSYM: /* Read-only data seg var -- static. */
7e258d18
PB
331 case N_NBSTS: /* Gould nobase. */
332 case N_NBLCS: /* symbols. */
333
334 SET_NAMESTRING();
335
336 p = (char *) strchr (namestring, ':');
337
338 /* Skip if there is no :. */
339 if (!p) continue;
340
341 switch (p[1])
342 {
343 case 'T':
bcbf9559 344 if (p != namestring) /* a name is there, not just :T... */
7e258d18 345 {
7e258d18 346 ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
bcbf9559 347 STRUCT_NAMESPACE, LOC_TYPEDEF,
1ab3bf1b 348 objfile->static_psymbols, CUR_SYMBOL_VALUE);
bcbf9559
JG
349 if (p[2] == 't')
350 {
351 /* Also a typedef with the same name. */
352 ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
353 VAR_NAMESPACE, LOC_TYPEDEF,
354 objfile->static_psymbols, CUR_SYMBOL_VALUE);
355 p += 1;
356 }
7e258d18
PB
357 }
358 goto check_enum;
359 case 't':
bcbf9559
JG
360 if (p != namestring) /* a name is there, not just :T... */
361 {
362 ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
363 VAR_NAMESPACE, LOC_TYPEDEF,
364 objfile->static_psymbols, CUR_SYMBOL_VALUE);
365 }
7e258d18 366 check_enum:
7e258d18
PB
367 /* If this is an enumerated type, we need to
368 add all the enum constants to the partial symbol
369 table. This does not cover enums without names, e.g.
370 "enum {a, b} c;" in C, but fortunately those are
371 rare. There is no way for GDB to find those from the
372 enum type without spending too much time on it. Thus
373 to solve this problem, the compiler needs to put out separate
374 constant symbols ('c' N_LSYMS) for enum constants in
375 enums without names, or put out a dummy type. */
376
377 /* We are looking for something of the form
378 <name> ":" ("t" | "T") [<number> "="] "e"
379 {<constant> ":" <value> ","} ";". */
380
381 /* Skip over the colon and the 't' or 'T'. */
382 p += 2;
383 /* This type may be given a number. Also, numbers can come
384 in pairs like (0,26). Skip over it. */
385 while ((*p >= '0' && *p <= '9')
386 || *p == '(' || *p == ',' || *p == ')'
387 || *p == '=')
388 p++;
389
390 if (*p++ == 'e')
391 {
392 /* We have found an enumerated type. */
393 /* According to comments in read_enum_type
394 a comma could end it instead of a semicolon.
395 I don't know where that happens.
396 Accept either. */
397 while (*p && *p != ';' && *p != ',')
398 {
399 char *q;
400
401 /* Check for and handle cretinous dbx symbol name
402 continuation! */
403 if (*p == '\\')
404 p = next_symbol_text ();
405
406 /* Point to the character after the name
407 of the enum constant. */
408 for (q = p; *q && *q != ':'; q++)
409 ;
410 /* Note that the value doesn't matter for
411 enum constants in psymtabs, just in symtabs. */
412 ADD_PSYMBOL_TO_LIST (p, q - p,
413 VAR_NAMESPACE, LOC_CONST,
1ab3bf1b 414 objfile->static_psymbols, 0);
7e258d18
PB
415 /* Point past the name. */
416 p = q;
417 /* Skip over the value. */
418 while (*p && *p != ',')
419 p++;
420 /* Advance past the comma. */
421 if (*p)
422 p++;
423 }
424 }
7e258d18
PB
425 continue;
426 case 'c':
427 /* Constant, e.g. from "const" in Pascal. */
428 ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
429 VAR_NAMESPACE, LOC_CONST,
1ab3bf1b 430 objfile->static_psymbols, CUR_SYMBOL_VALUE);
7e258d18
PB
431 continue;
432 default:
433 /* Skip if the thing following the : is
434 not a letter (which indicates declaration of a local
435 variable, which we aren't interested in). */
436 continue;
437 }
438
439 case N_FUN:
440 case N_GSYM: /* Global (extern) variable; can be
2670f34d 441 data or bss (sigh FIXME). */
7e258d18
PB
442
443 /* Following may probably be ignored; I'll leave them here
444 for now (until I do Pascal and Modula 2 extensions). */
445
446 case N_PC: /* I may or may not need this; I
447 suspect not. */
448 case N_M2C: /* I suspect that I can ignore this here. */
449 case N_SCOPE: /* Same. */
450
451 SET_NAMESTRING();
452
453 p = (char *) strchr (namestring, ':');
454 if (!p)
455 continue; /* Not a debugging symbol. */
456
457
458
459 /* Main processing section for debugging symbols which
460 the initial read through the symbol tables needs to worry
461 about. If we reach this point, the symbol which we are
462 considering is definitely one we are interested in.
463 p must also contain the (valid) index into the namestring
464 which indicates the debugging type symbol. */
465
466 switch (p[1])
467 {
468 case 'c':
469 ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
470 VAR_NAMESPACE, LOC_CONST,
1ab3bf1b 471 objfile->static_psymbols, CUR_SYMBOL_VALUE);
7e258d18
PB
472 continue;
473 case 'S':
2670f34d 474 CUR_SYMBOL_VALUE += ANOFFSET (section_offsets, SECT_OFF_DATA);
7e258d18
PB
475 ADD_PSYMBOL_ADDR_TO_LIST (namestring, p - namestring,
476 VAR_NAMESPACE, LOC_STATIC,
1ab3bf1b 477 objfile->static_psymbols, CUR_SYMBOL_VALUE);
7e258d18
PB
478 continue;
479 case 'G':
2670f34d 480 CUR_SYMBOL_VALUE += ANOFFSET (section_offsets, SECT_OFF_DATA);
7e258d18
PB
481 /* The addresses in these entries are reported to be
482 wrong. See the code that reads 'G's for symtabs. */
483 ADD_PSYMBOL_ADDR_TO_LIST (namestring, p - namestring,
484 VAR_NAMESPACE, LOC_STATIC,
1ab3bf1b 485 objfile->global_psymbols, CUR_SYMBOL_VALUE);
7e258d18
PB
486 continue;
487
488 case 't':
489 ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
490 VAR_NAMESPACE, LOC_TYPEDEF,
1ab3bf1b 491 objfile->static_psymbols, CUR_SYMBOL_VALUE);
7e258d18
PB
492 continue;
493
494 case 'f':
9342ecb9
JG
495#ifdef DBXREAD_ONLY
496 /* Kludges for ELF/STABS with Sun ACC */
497 last_function_name = namestring;
fef84cc4 498 if (pst && pst->textlow == 0)
9342ecb9
JG
499 pst->textlow = CUR_SYMBOL_VALUE;
500#if 0
501 if (startup_file_end == 0)
502 startup_file_end = CUR_SYMBOL_VALUE;
503#endif
504 /* End kludge. */
505#endif /* DBXREAD_ONLY */
7e258d18
PB
506 ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
507 VAR_NAMESPACE, LOC_BLOCK,
1ab3bf1b 508 objfile->static_psymbols, CUR_SYMBOL_VALUE);
7e258d18
PB
509 continue;
510
511 /* Global functions were ignored here, but now they
512 are put into the global psymtab like one would expect.
513 They're also in the misc fn vector...
514 FIXME, why did it used to ignore these? That broke
515 "i fun" on these functions. */
516 case 'F':
9342ecb9
JG
517#ifdef DBXREAD_ONLY
518 /* Kludges for ELF/STABS with Sun ACC */
519 last_function_name = namestring;
fef84cc4 520 if (pst && pst->textlow == 0)
9342ecb9
JG
521 pst->textlow = CUR_SYMBOL_VALUE;
522#if 0
523 if (startup_file_end == 0)
524 startup_file_end = CUR_SYMBOL_VALUE;
525#endif
526 /* End kludge. */
527#endif /* DBXREAD_ONLY */
7e258d18
PB
528 ADD_PSYMBOL_TO_LIST (namestring, p - namestring,
529 VAR_NAMESPACE, LOC_BLOCK,
1ab3bf1b 530 objfile->global_psymbols, CUR_SYMBOL_VALUE);
7e258d18
PB
531 continue;
532
533 /* Two things show up here (hopefully); static symbols of
534 local scope (static used inside braces) or extensions
535 of structure symbols. We can ignore both. */
536 case 'V':
537 case '(':
538 case '0':
539 case '1':
540 case '2':
541 case '3':
542 case '4':
543 case '5':
544 case '6':
545 case '7':
546 case '8':
547 case '9':
548 continue;
549
550 default:
551 /* Unexpected symbol. Ignore it; perhaps it is an extension
552 that we don't know about.
553
554 Someone says sun cc puts out symbols like
555 /foo/baz/maclib::/usr/local/bin/maclib,
556 which would get here with a symbol type of ':'. */
557 continue;
558 }
559
7e258d18 560 case N_EXCL:
aab77d5f 561#ifdef DBXREAD_ONLY
7e258d18
PB
562
563 SET_NAMESTRING();
564
565 /* Find the corresponding bincl and mark that psymtab on the
566 psymtab dependency list */
567 {
568 struct partial_symtab *needed_pst =
569 find_corresponding_bincl_psymtab (namestring, CUR_SYMBOL_VALUE);
570
571 /* If this include file was defined earlier in this file,
572 leave it alone. */
573 if (needed_pst == pst) continue;
574
575 if (needed_pst)
576 {
577 int i;
578 int found = 0;
579
580 for (i = 0; i < dependencies_used; i++)
581 if (dependency_list[i] == needed_pst)
582 {
583 found = 1;
584 break;
585 }
586
587 /* If it's already in the list, skip the rest. */
588 if (found) continue;
589
590 dependency_list[dependencies_used++] = needed_pst;
591 if (dependencies_used >= dependencies_allocated)
592 {
593 struct partial_symtab **orig = dependency_list;
594 dependency_list =
595 (struct partial_symtab **)
596 alloca ((dependencies_allocated *= 2)
597 * sizeof (struct partial_symtab *));
be772100 598 memcpy ((PTR)dependency_list, (PTR)orig,
7e258d18
PB
599 (dependencies_used
600 * sizeof (struct partial_symtab *)));
601#ifdef DEBUG_INFO
602 fprintf (stderr, "Had to reallocate dependency list.\n");
603 fprintf (stderr, "New dependencies allocated: %d\n",
604 dependencies_allocated);
605#endif
606 }
607 }
608 else
609 error ("Invalid symbol data: \"repeated\" header file not previously seen, at symtab pos %d.",
610 symnum);
611 }
aab77d5f 612#endif /* DBXREAD_ONLY */
7e258d18 613 continue;
7e258d18
PB
614
615 case N_RBRAC:
616#ifdef HANDLE_RBRAC
617 HANDLE_RBRAC(CUR_SYMBOL_VALUE);
aab77d5f 618 continue;
7e258d18
PB
619#endif
620 case N_EINCL:
621 case N_DSLINE:
622 case N_BSLINE:
623 case N_SSYM: /* Claim: Structure or union element.
624 Hopefully, I can ignore this. */
625 case N_ENTRY: /* Alternate entry point; can ignore. */
626 case N_MAIN: /* Can definitely ignore this. */
627 case N_CATCH: /* These are GNU C++ extensions */
628 case N_EHDECL: /* that can safely be ignored here. */
629 case N_LENG:
630 case N_BCOMM:
631 case N_ECOMM:
632 case N_ECOML:
633 case N_FNAME:
634 case N_SLINE:
635 case N_RSYM:
636 case N_PSYM:
637 case N_LBRAC:
638 case N_NSYMS: /* Ultrix 4.0: symbol count */
639 case N_DEFD: /* GNU Modula-2 */
9342ecb9 640
4c7c6bab 641 case N_OBJ: /* useless types from Solaris */
9342ecb9 642 case N_OPT:
4c7c6bab 643 case N_ENDM:
7e258d18
PB
644 /* These symbols aren't interesting; don't worry about them */
645
646 continue;
647
648 default:
7e258d18
PB
649 /* If we haven't found it yet, ignore it. It's probably some
650 new type we don't know about yet. */
51b80b00
FF
651 complain (&unknown_symtype_complaint,
652 local_hex_string (CUR_SYMBOL_TYPE));
7e258d18
PB
653 continue;
654 }
This page took 0.087698 seconds and 4 git commands to generate.