aboutsummaryrefslogtreecommitdiff
path: root/bfd/vms-alpha.c
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2010-05-21 13:19:34 +0000
committerTristan Gingold <gingold@adacore.com>2010-05-21 13:19:34 +0000
commitc068d5be63b558c53cfb79369d225b2d5e87d0c5 (patch)
treeacb78bdb61d63d6ec96d2b81ecaf2acd86211008 /bfd/vms-alpha.c
parentdd2d38b55fc1479dabf9ae462a98b3d2ffeeb4ca (diff)
downloadgdb-c068d5be63b558c53cfb79369d225b2d5e87d0c5.zip
gdb-c068d5be63b558c53cfb79369d225b2d5e87d0c5.tar.gz
gdb-c068d5be63b558c53cfb79369d225b2d5e87d0c5.tar.bz2
2010-05-21 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_slurp_eisd): Set SEC_HAS_CONTENTS and SEC_LOAD if isect has data. (vms_get_symbol_info): Refine the condition for 'T' type.
Diffstat (limited to 'bfd/vms-alpha.c')
-rw-r--r--bfd/vms-alpha.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index 8d1d7cb..2c6a19c 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -547,12 +547,14 @@ _bfd_vms_slurp_eisd (bfd *abfd, unsigned int offset)
what's in each section without examining the data. This is
especially true of DWARF debug sections. */
bfd_flags = SEC_ALLOC;
+ if (vbn != 0)
+ bfd_flags |= SEC_HAS_CONTENTS | SEC_LOAD;
if (flags & EISD__M_EXE)
- bfd_flags |= SEC_CODE | SEC_HAS_CONTENTS | SEC_LOAD;
+ bfd_flags |= SEC_CODE;
if (flags & EISD__M_NONSHRADR)
- bfd_flags |= SEC_DATA | SEC_HAS_CONTENTS | SEC_LOAD;
+ bfd_flags |= SEC_DATA;
if (!(flags & EISD__M_WRT))
bfd_flags |= SEC_READONLY;
@@ -561,10 +563,10 @@ _bfd_vms_slurp_eisd (bfd *abfd, unsigned int offset)
bfd_flags |= SEC_DATA;
if (flags & EISD__M_FIXUPVEC)
- bfd_flags |= SEC_DATA | SEC_HAS_CONTENTS | SEC_LOAD;
+ bfd_flags |= SEC_DATA;
if (flags & EISD__M_CRF)
- bfd_flags |= SEC_HAS_CONTENTS | SEC_LOAD;
+ bfd_flags |= SEC_DATA;
if (flags & EISD__M_GBL)
{
@@ -8944,7 +8946,8 @@ vms_get_symbol_info (bfd * abfd ATTRIBUTE_UNUSED,
ret->type = 'U';
else if (bfd_is_ind_section (sec))
ret->type = 'I';
- else if (bfd_get_section_flags (abfd, sec) & SEC_CODE)
+ else if ((symbol->flags & BSF_FUNCTION)
+ || (bfd_get_section_flags (abfd, sec) & SEC_CODE))
ret->type = 'T';
else if (bfd_get_section_flags (abfd, sec) & SEC_DATA)
ret->type = 'D';