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
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
 
+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
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
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;
 
+  /* 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))
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
--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
@@ -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.
 
+@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),