diff options
author | Daniel Jacobowitz <drow@false.org> | 2003-04-13 15:25:23 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2003-04-13 15:25:23 +0000 |
commit | 6aca59a35914f39148f06d4d43f56a56c3cc4e55 (patch) | |
tree | d327e6c146a153e962e85f8b637bbbb1a9de20ae | |
parent | 97095916d8797df284d695578c1ba41a578ba822 (diff) | |
download | gdb-6aca59a35914f39148f06d4d43f56a56c3cc4e55.zip gdb-6aca59a35914f39148f06d4d43f56a56c3cc4e55.tar.gz gdb-6aca59a35914f39148f06d4d43f56a56c3cc4e55.tar.bz2 |
* minsyms.c (install_minimal_symbols): Only switch to gnu-v3 mode
if the linkage name demangled successfully.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/minsyms.c | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6cb324a..7d6f504 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2003-04-13 Daniel Jacobowitz <drow@mvista.com> + + * minsyms.c (install_minimal_symbols): Only switch to gnu-v3 mode + if the linkage name demangled successfully. + 2003-04-13 Mark Kettenis <kettenis@gnu.org> * x86-64-tdep.c (att_flavour, intel_flavour, valid_flavours, diff --git a/gdb/minsyms.c b/gdb/minsyms.c index d8569ff..1f6cb38 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -920,8 +920,14 @@ install_minimal_symbols (struct objfile *objfile) for (i = 0; i < mcount; i++) { + /* If a symbol's name starts with _Z and was successfully + demangled, then we can assume we've found a GNU v3 symbol. + For now we set the C++ ABI globally; if the user is + mixing ABIs then the user will need to "set cp-abi" + manually. */ const char *name = SYMBOL_LINKAGE_NAME (&objfile->msymbols[i]); - if (name[0] == '_' && name[1] == 'Z') + if (name[0] == '_' && name[1] == 'Z' + && SYMBOL_DEMANGLED_NAME (&objfile->msymbols[i]) != NULL) { set_cp_abi_as_auto_default ("gnu-v3"); break; |