summaryrefslogtreecommitdiff
path: root/gcc/flag-types.h
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-22 07:18:33 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-22 07:18:33 +0000
commit5115372146c7762b67b0c30b01906d3fe6dad0c3 (patch)
tree4b5d0ea58d499c4b232c97da3fe08e4bad5182b5 /gcc/flag-types.h
parenta8761b59fd725a476ce823908fa43b62367e02d3 (diff)
downloadgcc-5115372146c7762b67b0c30b01906d3fe6dad0c3.tar.gz
2010-11-22 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 167021 2010-11-22 Basile Starynkevitch <basile@starynkevitch.net> * melt-runtime.c: replaced strerror by xstrerror everywhere, while merging with trunk 167021. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@167023 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flag-types.h')
-rw-r--r--gcc/flag-types.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/flag-types.h b/gcc/flag-types.h
index 4259985b02a..6eb6c3f422f 100644
--- a/gcc/flag-types.h
+++ b/gcc/flag-types.h
@@ -58,6 +58,41 @@ enum debug_info_usage
DINFO_USAGE_NUM_ENUMS /* The number of enumerators. */
};
+/* A major contribution to object and executable size is debug
+ information size. A major contribution to debug information size
+ is struct descriptions replicated in several object files. The
+ following flags attempt to reduce this information. The basic
+ idea is to not emit struct debugging information in the current
+ compilation unit when that information will be generated by
+ another compilation unit.
+
+ Debug information for a struct defined in the current source
+ file should be generated in the object file. Likewise the
+ debug information for a struct defined in a header should be
+ generated in the object file of the corresponding source file.
+ Both of these case are handled when the base name of the file of
+ the struct definition matches the base name of the source file
+ of the current compilation unit. This matching emits minimal
+ struct debugging information.
+
+ The base file name matching rule above will fail to emit debug
+ information for structs defined in system headers. So a second
+ category of files includes system headers in addition to files
+ with matching bases.
+
+ The remaining types of files are library headers and application
+ headers. We cannot currently distinguish these two types. */
+
+enum debug_struct_file
+{
+ DINFO_STRUCT_FILE_NONE, /* Debug no structs. */
+ DINFO_STRUCT_FILE_BASE, /* Debug structs defined in files with the
+ same base name as the compilation unit. */
+ DINFO_STRUCT_FILE_SYS, /* Also debug structs defined in system
+ header files. */
+ DINFO_STRUCT_FILE_ANY /* Debug structs defined in all files. */
+};
+
/* Enumerate visibility settings. This is deliberately ordered from most
to least visibility. */
#ifndef SYMBOL_VISIBILITY_DEFINED