projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PR25070, SEGV in function _bfd_dwarf2_find_nearest_line
[deliverable/binutils-gdb.git]
/
gdb
/
stabsread.c
diff --git
a/gdb/stabsread.c
b/gdb/stabsread.c
index a3fe6c99ca3529bed7b3fb239b0c4b33c6445f40..fa2521f1ca3950c6615e38ba18af5f3c9b989c74 100644
(file)
--- a/
gdb/stabsread.c
+++ b/
gdb/stabsread.c
@@
-42,6
+42,7
@@
#include "gdb-demangle.h"
#include "language.h"
#include "target-float.h"
#include "gdb-demangle.h"
#include "language.h"
#include "target-float.h"
+#include "c-lang.h"
#include "cp-abi.h"
#include "cp-support.h"
#include <ctype.h>
#include "cp-abi.h"
#include "cp-support.h"
#include <ctype.h>
@@
-426,8
+427,8
@@
patch_block_stabs (struct pending *symbols, struct pending_stabs *stabs,
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
SYMBOL_ACLASS_INDEX (sym) = LOC_OPTIMIZED_OUT;
SYMBOL_SET_LINKAGE_NAME
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
SYMBOL_ACLASS_INDEX (sym) = LOC_OPTIMIZED_OUT;
SYMBOL_SET_LINKAGE_NAME
- (sym,
(char *) obstack_copy0
(&objfile->objfile_obstack,
-
name, pp - name));
+ (sym,
obstack_strndup
(&objfile->objfile_obstack,
+ name, pp - name));
pp += 2;
if (*(pp - 1) == 'F' || *(pp - 1) == 'f')
{
pp += 2;
if (*(pp - 1) == 'F' || *(pp - 1) == 'f')
{
@@
-942,7
+943,7
@@
define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
SYMBOL_TYPE (sym) = read_type (&p, objfile);
SYMBOL_ACLASS_INDEX (sym) = LOC_LABEL;
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
SYMBOL_TYPE (sym) = read_type (&p, objfile);
SYMBOL_ACLASS_INDEX (sym) = LOC_LABEL;
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
- S
YMBOL_VALUE_ADDRESS (sym) = valu
;
+ S
ET_SYMBOL_VALUE_ADDRESS (sym, valu)
;
add_symbol_to_list (sym, get_local_symbols ());
break;
add_symbol_to_list (sym, get_local_symbols ());
break;
@@
-1188,7
+1189,7
@@
define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
/* Static symbol at top level of file. */
SYMBOL_TYPE (sym) = read_type (&p, objfile);
SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
/* Static symbol at top level of file. */
SYMBOL_TYPE (sym) = read_type (&p, objfile);
SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
- S
YMBOL_VALUE_ADDRESS (sym) = valu
;
+ S
ET_SYMBOL_VALUE_ADDRESS (sym, valu)
;
if (gdbarch_static_transform_name_p (gdbarch)
&& gdbarch_static_transform_name (gdbarch,
SYMBOL_LINKAGE_NAME (sym))
if (gdbarch_static_transform_name_p (gdbarch)
&& gdbarch_static_transform_name (gdbarch,
SYMBOL_LINKAGE_NAME (sym))
@@
-1204,7
+1205,8
@@
define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
(gdbarch, SYMBOL_LINKAGE_NAME (sym));
SYMBOL_SET_LINKAGE_NAME (sym, new_name);
(gdbarch, SYMBOL_LINKAGE_NAME (sym));
SYMBOL_SET_LINKAGE_NAME (sym, new_name);
- SYMBOL_VALUE_ADDRESS (sym) = BMSYMBOL_VALUE_ADDRESS (msym);
+ SET_SYMBOL_VALUE_ADDRESS (sym,
+ BMSYMBOL_VALUE_ADDRESS (msym));
}
}
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
}
}
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
@@
-1258,11
+1260,6
@@
define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
if (TYPE_NAME (SYMBOL_TYPE (sym)) == NULL)
{
if (TYPE_NAME (SYMBOL_TYPE (sym)) == NULL)
{
- /* gcc-2.6 or later (when using -fvtable-thunks)
- emits a unique named type for a vtable entry.
- Some gdb code depends on that specific name. */
- extern const char vtbl_ptr_name[];
-
if ((TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_PTR
&& strcmp (SYMBOL_LINKAGE_NAME (sym), vtbl_ptr_name))
|| TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_FUNC)
if ((TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_PTR
&& strcmp (SYMBOL_LINKAGE_NAME (sym), vtbl_ptr_name))
|| TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_FUNC)
@@
-1380,7
+1377,7
@@
define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
/* Static symbol of local scope. */
SYMBOL_TYPE (sym) = read_type (&p, objfile);
SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
/* Static symbol of local scope. */
SYMBOL_TYPE (sym) = read_type (&p, objfile);
SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
- S
YMBOL_VALUE_ADDRESS (sym) = valu
;
+ S
ET_SYMBOL_VALUE_ADDRESS (sym, valu)
;
if (gdbarch_static_transform_name_p (gdbarch)
&& gdbarch_static_transform_name (gdbarch,
SYMBOL_LINKAGE_NAME (sym))
if (gdbarch_static_transform_name_p (gdbarch)
&& gdbarch_static_transform_name (gdbarch,
SYMBOL_LINKAGE_NAME (sym))
@@
-1396,7
+1393,7
@@
define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
(gdbarch, SYMBOL_LINKAGE_NAME (sym));
SYMBOL_SET_LINKAGE_NAME (sym, new_name);
(gdbarch, SYMBOL_LINKAGE_NAME (sym));
SYMBOL_SET_LINKAGE_NAME (sym, new_name);
- S
YMBOL_VALUE_ADDRESS (sym) = BMSYMBOL_VALUE_ADDRESS (msym
);
+ S
ET_SYMBOL_VALUE_ADDRESS (sym, BMSYMBOL_VALUE_ADDRESS (msym)
);
}
}
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
}
}
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
@@
-1654,12
+1651,8
@@
again:
std::string new_name = cp_canonicalize_string (name);
if (!new_name.empty ())
std::string new_name = cp_canonicalize_string (name);
if (!new_name.empty ())
- {
- type_name
- = (char *) obstack_copy0 (&objfile->objfile_obstack,
- new_name.c_str (),
- new_name.length ());
- }
+ type_name = obstack_strdup (&objfile->objfile_obstack,
+ new_name);
}
if (type_name == NULL)
{
}
if (type_name == NULL)
{
@@
-2845,7
+2838,7
@@
read_one_struct_field (struct stab_field_info *fip, const char **pp,
struct gdbarch *gdbarch = get_objfile_arch (objfile);
fip->list->field.name
struct gdbarch *gdbarch = get_objfile_arch (objfile);
fip->list->field.name
- =
(const char *) obstack_copy0
(&objfile->objfile_obstack, *pp, p - *pp);
+ =
obstack_strndup
(&objfile->objfile_obstack, *pp, p - *pp);
*pp = p + 1;
/* This means we have a visibility for a field coming. */
*pp = p + 1;
/* This means we have a visibility for a field coming. */
@@
-3645,7
+3638,7
@@
read_enum_type (const char **pp, struct type *type,
p = *pp;
while (*p != ':')
p++;
p = *pp;
while (*p != ':')
p++;
- name =
(char *) obstack_copy0
(&objfile->objfile_obstack, *pp, p - *pp);
+ name =
obstack_strndup
(&objfile->objfile_obstack, *pp, p - *pp);
*pp = p + 1;
n = read_huge_number (pp, ',', &nbits, 0);
if (nbits != 0)
*pp = p + 1;
n = read_huge_number (pp, ',', &nbits, 0);
if (nbits != 0)
@@
-4293,8
+4286,7
@@
common_block_start (const char *name, struct objfile *objfile)
}
common_block = *get_local_symbols ();
common_block_i = common_block ? common_block->nsyms : 0;
}
common_block = *get_local_symbols ();
common_block_i = common_block ? common_block->nsyms : 0;
- common_block_name = (char *) obstack_copy0 (&objfile->objfile_obstack, name,
- strlen (name));
+ common_block_name = obstack_strdup (&objfile->objfile_obstack, name);
}
/* Process a N_ECOMM symbol. */
}
/* Process a N_ECOMM symbol. */
@@
-4368,7
+4360,9
@@
fix_common_block (struct symbol *sym, CORE_ADDR valu)
int j;
for (j = next->nsyms - 1; j >= 0; j--)
int j;
for (j = next->nsyms - 1; j >= 0; j--)
- SYMBOL_VALUE_ADDRESS (next->symbol[j]) += valu;
+ SET_SYMBOL_VALUE_ADDRESS (next->symbol[j],
+ SYMBOL_VALUE_ADDRESS (next->symbol[j])
+ + valu);
}
}
\f
}
}
\f
@@
-4646,8
+4640,9
@@
scan_file_globals (struct objfile *objfile)
}
else
{
}
else
{
- SYMBOL_VALUE_ADDRESS (sym)
- = MSYMBOL_VALUE_ADDRESS (resolve_objfile, msymbol);
+ SET_SYMBOL_VALUE_ADDRESS
+ (sym, MSYMBOL_VALUE_ADDRESS (resolve_objfile,
+ msymbol));
}
SYMBOL_SECTION (sym) = MSYMBOL_SECTION (msymbol);
}
}
SYMBOL_SECTION (sym) = MSYMBOL_SECTION (msymbol);
}
@@
-4685,7
+4680,7
@@
scan_file_globals (struct objfile *objfile)
/* Change the symbol address from the misleading chain value
to address zero. */
/* Change the symbol address from the misleading chain value
to address zero. */
- S
YMBOL_VALUE_ADDRESS (prev) = 0
;
+ S
ET_SYMBOL_VALUE_ADDRESS (prev, 0)
;
/* Complain about unresolved common block symbols. */
if (SYMBOL_CLASS (prev) == LOC_STATIC)
/* Complain about unresolved common block symbols. */
if (SYMBOL_CLASS (prev) == LOC_STATIC)
This page took
0.026925 seconds
and
4
git commands to generate.