OSDN Git Service

gcc/
authorcarlos <carlos@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Mar 2006 21:17:41 +0000 (21:17 +0000)
committercarlos <carlos@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Mar 2006 21:17:41 +0000 (21:17 +0000)
2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>

* doc/invoke.texi: Document -femit-class-debug-always
* common.opt: Add -femit-class-debug-always.

gcc/cp/

2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>

* search.c (maybe_suppress_debug_info): If
flag_emit_class_debug_always then don't suppress.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112360 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/common.opt
gcc/cp/ChangeLog
gcc/cp/search.c
gcc/doc/invoke.texi

index 8bc62da..e47ecd1 100644 (file)
@@ -1,3 +1,8 @@
+2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
+
+       * doc/invoke.texi: Document -femit-class-debug-always
+       * common.opt: Add -femit-class-debug-always.
+
 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
 
        * config/s390/s390.c (s390_decompose_address): Allow SImode for
 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
 
        * config/s390/s390.c (s390_decompose_address): Allow SImode for
index f6c7fad..ba5bb29 100644 (file)
@@ -397,6 +397,10 @@ feliminate-unused-debug-types
 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
 Perform unused type elimination in debug info
 
 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
 Perform unused type elimination in debug info
 
+femit-class-debug-always
+Common Report Var(flag_emit_class_debug_always) Init(1)
+Do not suppress C++ class debug information.
+
 fexceptions
 Common Report Var(flag_exceptions)
 Enable exception handling
 fexceptions
 Common Report Var(flag_exceptions)
 Enable exception handling
index a1333e5..f154edc 100644 (file)
@@ -1,3 +1,8 @@
+2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
+
+       * search.c (maybe_suppress_debug_info): If
+       flag_emit_class_debug_always then don't suppress.
+
 2006-03-22  Jason Merrill  <jason@redhat.com>
 
         * name-lookup.c (push_namespace_with_attribs): Only apply hidden
 2006-03-22  Jason Merrill  <jason@redhat.com>
 
         * name-lookup.c (push_namespace_with_attribs): Only apply hidden
index ec572d0..66bbb13 100644 (file)
@@ -2042,6 +2042,10 @@ maybe_suppress_debug_info (tree t)
   /* We might have set this earlier in cp_finish_decl.  */
   TYPE_DECL_SUPPRESS_DEBUG (TYPE_MAIN_DECL (t)) = 0;
 
   /* We might have set this earlier in cp_finish_decl.  */
   TYPE_DECL_SUPPRESS_DEBUG (TYPE_MAIN_DECL (t)) = 0;
 
+  /* Always emit the information for each class every time. */
+  if (flag_emit_class_debug_always)
+    return;
+
   /* If we already know how we're handling this class, handle debug info
      the same way.  */
   if (CLASSTYPE_INTERFACE_KNOWN (t))
   /* If we already know how we're handling this class, handle debug info
      the same way.  */
   if (CLASSTYPE_INTERFACE_KNOWN (t))
index 16ec89b..97885ef 100644 (file)
@@ -287,7 +287,8 @@ Objective-C and Objective-C++ Dialects}.
 -ftree-vectorizer-verbose=@var{n} @gol
 -fdump-tree-storeccp@r{[}-@var{n}@r{]} @gol
 -feliminate-dwarf2-dups -feliminate-unused-debug-types @gol
 -ftree-vectorizer-verbose=@var{n} @gol
 -fdump-tree-storeccp@r{[}-@var{n}@r{]} @gol
 -feliminate-dwarf2-dups -feliminate-unused-debug-types @gol
--feliminate-unused-debug-symbols -fmem-report -fprofile-arcs @gol
+-feliminate-unused-debug-symbols -femit-class-debug-always @gol
+-fmem-report -fprofile-arcs @gol
 -frandom-seed=@var{string} -fsched-verbose=@var{n} @gol
 -ftest-coverage  -ftime-report -fvar-tracking @gol
 -g  -g@var{level}  -gcoff -gdwarf-2 @gol
 -frandom-seed=@var{string} -fsched-verbose=@var{n} @gol
 -ftest-coverage  -ftime-report -fvar-tracking @gol
 -g  -g@var{level}  -gcoff -gdwarf-2 @gol
@@ -3522,6 +3523,14 @@ On System V Release 4 systems this option requires the GNU assembler.
 Produce debugging information in stabs format (if that is supported),
 for only symbols that are actually used.
 
 Produce debugging information in stabs format (if that is supported),
 for only symbols that are actually used.
 
+@item -femit-class-debug-always
+Instead of emitting debugging information for a C++ class in only one
+object file, emit it in all object files using the class.  This option
+should be used only with debuggers that are unable to handle the way GCC
+normally emits debugging information for classes because using this
+option will increase the size of debugging information by as much as a
+factor of two.
+
 @item -gstabs+
 @opindex gstabs+
 Produce debugging information in stabs format (if that is supported),
 @item -gstabs+
 @opindex gstabs+
 Produce debugging information in stabs format (if that is supported),