diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ada/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/misc.c | 4 | ||||
-rw-r--r-- | gcc/common.opt | 21 | ||||
-rw-r--r-- | gcc/defaults.h | 4 | ||||
-rw-r--r-- | gcc/flag-types.h | 15 |
6 files changed, 56 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1db66d6..c55482b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> + + * common.opt (gnat_encodings): New variable + (dwarf_gnat_encodings): New enum type. + (fgnat_encodings): New option. + * flag-types.h (enum dwarf_gnat_encodings): New. + 2015-12-17 Christian Bruel <christian.bruel@st.com> * tree.h (TYPE_MODE_RAW): New macro. diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 6e2e7b1..4d802d2 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> + + * gcc-interface/misc.c (gnat_encodings): Undefine macro and + declare a global variable. + (gnat_post_options): Initialize this global from options. + 2015-12-10 Eric Botcazou <ebotcazou@adacore.com> PR ada/48013 diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c index 2a65142..ef0fe3f 100644 --- a/gcc/ada/gcc-interface/misc.c +++ b/gcc/ada/gcc-interface/misc.c @@ -68,7 +68,8 @@ extern const char **gnat_argv; /* Ada code requires variables for these settings rather than elements of the global_options structure because they are imported. */ -int gnat_encodings = 0; +#undef gnat_encodings +enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT; #undef optimize int optimize; @@ -276,6 +277,7 @@ gnat_post_options (const char **pfilename ATTRIBUTE_UNUSED) "supported anymore"); /* Copy global settings to local versions. */ + gnat_encodings = global_options.x_gnat_encodings; optimize = global_options.x_optimize; optimize_size = global_options.x_optimize_size; flag_compare_debug = global_options.x_flag_compare_debug; diff --git a/gcc/common.opt b/gcc/common.opt index 6264bc0..d66013a 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -167,6 +167,11 @@ bool flag_stack_usage_info = false Variable int flag_debug_asm + +; Balance between GNAT encodings and standard DWARF to emit. +Variable +enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT + ; -dP causes the rtl to be emitted as a comment in assembly. Variable int flag_dump_rtl_in_asm @@ -1337,6 +1342,22 @@ Common Report Var(flag_gcse_after_reload) Optimization Perform global common subexpression elimination after register allocation has finished. +Enum +Name(dwarf_gnat_encodings) Type(int) + +EnumValue +Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL) + +EnumValue +Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB) + +EnumValue +Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL) + +fgnat-encodings= +Common Enum(dwarf_gnat_encodings) Joined RejectNegative Report Undocumented Var(gnat_encodings) +-fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information + ; This option is not documented yet as its semantics will change. fgraphite Common Report Var(flag_graphite) Optimization diff --git a/gcc/defaults.h b/gcc/defaults.h index 0f1c713..3583627 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -1488,4 +1488,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #endif /* GCC_INSN_FLAGS_H */ +#ifndef DWARF_GNAT_ENCODINGS_DEFAULT +#define DWARF_GNAT_ENCODINGS_DEFAULT DWARF_GNAT_ENCODINGS_GDB +#endif + #endif /* ! GCC_DEFAULTS_H */ diff --git a/gcc/flag-types.h b/gcc/flag-types.h index b130fc5..c81a8a2 100644 --- a/gcc/flag-types.h +++ b/gcc/flag-types.h @@ -91,6 +91,21 @@ enum debug_struct_file DINFO_STRUCT_FILE_ANY /* Debug structs defined in all files. */ }; +/* Balance between GNAT encodings and standard DWARF to emit. */ + +enum dwarf_gnat_encodings +{ + DWARF_GNAT_ENCODINGS_ALL = 0, /* Emit all GNAT encodings, then emit as + much standard DWARF as possible so it + does not conflict with GNAT + encodings. */ + DWARF_GNAT_ENCODINGS_GDB = 1, /* Emit as much standard DWARF as possible + as long as GDB handles them. Emit GNAT + encodings for the rest. */ + DWARF_GNAT_ENCODINGS_MINIMAL = 2 /* Emit all the standard DWARF we can. + Emit GNAT encodings for the rest. */ +}; + /* Enumerate Objective-c instance variable visibility settings. */ enum ivar_visibility |