diff options
Diffstat (limited to 'gcc/dbxout.c')
-rw-r--r-- | gcc/dbxout.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c index e7a7738816d..a2201b8274b 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -960,6 +960,10 @@ get_lang_number (void) return N_SO_PASCAL; else if (strcmp (language_string, "GNU Objective-C") == 0) return N_SO_OBJC; + /* APPLE LOCAL begin Objective-C++ */ + else if (strcmp (language_string, "GNU Objective-C++") == 0) + return N_SO_OBJCPLUS; + /* APPLE LOCAL end Objective-C++ */ else return 0; @@ -1045,6 +1049,13 @@ dbxout_init (const char *input_file_name) current_file->pending_bincl_name = NULL; #endif +/* APPLE LOCAL begin gdb only used symbols */ +#ifndef DBX_ONLY_USED_SYMBOLS + dbxout_symbol (TYPE_NAME (integer_type_node), 0); + dbxout_symbol (TYPE_NAME (char_type_node), 0); +#endif +/* APPLE LOCAL end gdb only used symbols */ + /* Get all permanent types that have typedef names, and output them all, except for those already output. Some language front ends put these declarations in the top-level scope; some do not; @@ -2487,7 +2498,14 @@ dbxout_symbol (tree decl, int local ATTRIBUTE_UNUSED) int tag_needed = 1; int did_output = 0; - if (DECL_NAME (decl)) + /* APPLE LOCAL begin gdb only used symbols */ + if (DECL_NAME (decl) +#ifdef DBX_ONLY_USED_SYMBOLS + /* Do not generate a tag for incomplete records */ + && (COMPLETE_TYPE_P (type) || TREE_CODE (type) == VOID_TYPE) +#endif + ) + /* APPLE LOCAL end gdb only used symbols */ { /* Nonzero means we must output a tag as well as a typedef. */ tag_needed = 0; |