Message ID | 20121004082643.GA30743@adacore.com |
---|---|
State | New |
Headers | show |
On Thu, Oct 4, 2012 at 10:26 AM, Arnaud Charlet <charlet@adacore.com> wrote: > After changes by Sharad (Add option for dumping to stderr (issue6190057)), > -fdump-ada-spec is broken, and is now a no-op. > > Admittedly, this is because -fdump-ada-spec is handled differently from > other -fdump-* switches, so this patch fixes support for -fdump-ada-spec > by using an approach similar to -fdump-go-spec, and use regular switches > via c/c.opt. I've removed the handling of TDF_RAW, which was a debugging > option, and never really used, so can be simply deleted. > > Change is mostly trivial/mechanical. > > Tested on x86_64-pc-linux-gnu, OK for trunk? Much cleaner indeed. Ok, Thanks, Richard. > gcc/ > > 2012-10-04 Arnaud Charlet <charlet@adacore.com> > > * dumpfile.h, dumpfile.c: Remove TDI_ada. > > c-family/ > > 2012-10-04 Arnaud Charlet <charlet@adacore.com> > > * c-ada-spec.c (print_ada_declaration): Remove handling of TDF_RAW. > * c.opt (-fdump-ada-spec, -fdump-ada-spec-slim): Move switch definition > out of dumpfile.h. > > c/ > > 2012-10-04 Arnaud Charlet <charlet@adacore.com> > > * c-decl.c (c_write_global_declarations): Fix handling of > -fdump-ada-spec*. > > cp/ > > 2012-10-04 Arnaud Charlet <charlet@adacore.com> > > * decl2.c (cp_write_global_declarations): Fix handling of > -fdump-ada-spec*. > > Arno > -- > Index: c-family/c.opt > =================================================================== > --- c-family/c.opt (revision 192062) > +++ c-family/c.opt (working copy) > @@ -799,6 +799,14 @@ fdollars-in-identifiers > C ObjC C++ ObjC++ > Permit '$' as an identifier character > > +fdump-ada-spec > +C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec) > +Write all declarations as Ada code transitively > + > +fdump-ada-spec-slim > +C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim) > +Write all declarations as Ada code for the given file only > + > felide-constructors > C++ ObjC++ Var(flag_elide_constructors) Init(1) > > Index: c-family/c-ada-spec.c > =================================================================== > --- c-family/c-ada-spec.c (revision 192062) > +++ c-family/c-ada-spec.c (working copy) > @@ -2535,7 +2535,6 @@ print_ada_declaration (pretty_printer *b > int is_class = false; > tree name = TYPE_NAME (TREE_TYPE (t)); > tree decl_name = DECL_NAME (t); > - bool dump_internal = get_dump_file_info (TDI_ada)->pflags & TDF_RAW; > tree orig = NULL_TREE; > > if (cpp_check && cpp_check (t, IS_TEMPLATE)) > @@ -2705,8 +2704,7 @@ print_ada_declaration (pretty_printer *b > } > else > { > - if (!dump_internal > - && TREE_CODE (t) == VAR_DECL > + if (TREE_CODE (t) == VAR_DECL > && decl_name > && *IDENTIFIER_POINTER (decl_name) == '_') > return 0; > @@ -2796,8 +2794,7 @@ print_ada_declaration (pretty_printer *b > > /* If this function has an entry in the dispatch table, we cannot > omit it. */ > - if (!dump_internal && !DECL_VINDEX (t) > - && *IDENTIFIER_POINTER (decl_name) == '_') > + if (!DECL_VINDEX (t) && *IDENTIFIER_POINTER (decl_name) == '_') > { > if (IDENTIFIER_POINTER (decl_name)[1] == '_') > return 0; > Index: c/c-decl.c > =================================================================== > --- c/c-decl.c (revision 192062) > +++ c/c-decl.c (working copy) > @@ -10079,10 +10079,10 @@ c_write_global_declarations (void) > gcc_assert (!current_scope); > > /* Handle -fdump-ada-spec[-slim]. */ > - if (dump_initialized_p (TDI_ada)) > + if (flag_dump_ada_spec || flag_dump_ada_spec_slim) > { > /* Build a table of files to generate specs for */ > - if (get_dump_file_info (TDI_ada)->pflags & TDF_SLIM) > + if (flag_dump_ada_spec_slim) > collect_source_ref (main_input_filename); > else > for_each_global_decl (collect_source_ref_cb); > Index: cp/decl2.c > =================================================================== > --- cp/decl2.c (revision 192062) > +++ cp/decl2.c (working copy) > @@ -3698,9 +3698,9 @@ cp_write_global_declarations (void) > cgraph_process_same_body_aliases (); > > /* Handle -fdump-ada-spec[-slim] */ > - if (dump_initialized_p (TDI_ada)) > + if (flag_dump_ada_spec || flag_dump_ada_spec_slim) > { > - if (get_dump_file_info (TDI_ada)->pflags & TDF_SLIM) > + if (flag_dump_ada_spec_slim) > collect_source_ref (main_input_filename); > else > collect_source_refs (global_namespace); > Index: dumpfile.c > =================================================================== > --- dumpfile.c (revision 192062) > +++ dumpfile.c (working copy) > @@ -57,8 +57,7 @@ static struct dump_file_info dump_files[ > 0, 0, 0, 5}, > {".vcg", "tree-vcg", NULL, NULL, NULL, NULL, NULL, TDF_TREE, > 0, 0, 0, 6}, > - {".ads", "ada-spec", NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 7}, > -#define FIRST_AUTO_NUMBERED_DUMP 8 > +#define FIRST_AUTO_NUMBERED_DUMP 7 > > {NULL, "tree-all", NULL, NULL, NULL, NULL, NULL, TDF_TREE, > 0, 0, 0, 0}, > Index: dumpfile.h > =================================================================== > --- dumpfile.h (revision 192062) > +++ dumpfile.h (working copy) > @@ -37,7 +37,6 @@ enum tree_dump_index > TDI_nested, /* dump each function after unnesting it */ > TDI_vcg, /* create a VCG graph file for each > function's flowgraph. */ > - TDI_ada, /* dump declarations in Ada syntax. */ > TDI_tree_all, /* enable all the GENERIC/GIMPLE dumps. */ > TDI_rtl_all, /* enable all the RTL dumps. */ > TDI_ipa_all, /* enable all the IPA dumps. */
Index: c-family/c.opt =================================================================== --- c-family/c.opt (revision 192062) +++ c-family/c.opt (working copy) @@ -799,6 +799,14 @@ fdollars-in-identifiers C ObjC C++ ObjC++ Permit '$' as an identifier character +fdump-ada-spec +C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec) +Write all declarations as Ada code transitively + +fdump-ada-spec-slim +C ObjC C++ ObjC++ RejectNegative Var(flag_dump_ada_spec_slim) +Write all declarations as Ada code for the given file only + felide-constructors C++ ObjC++ Var(flag_elide_constructors) Init(1) Index: c-family/c-ada-spec.c =================================================================== --- c-family/c-ada-spec.c (revision 192062) +++ c-family/c-ada-spec.c (working copy) @@ -2535,7 +2535,6 @@ print_ada_declaration (pretty_printer *b int is_class = false; tree name = TYPE_NAME (TREE_TYPE (t)); tree decl_name = DECL_NAME (t); - bool dump_internal = get_dump_file_info (TDI_ada)->pflags & TDF_RAW; tree orig = NULL_TREE; if (cpp_check && cpp_check (t, IS_TEMPLATE)) @@ -2705,8 +2704,7 @@ print_ada_declaration (pretty_printer *b } else { - if (!dump_internal - && TREE_CODE (t) == VAR_DECL + if (TREE_CODE (t) == VAR_DECL && decl_name && *IDENTIFIER_POINTER (decl_name) == '_') return 0; @@ -2796,8 +2794,7 @@ print_ada_declaration (pretty_printer *b /* If this function has an entry in the dispatch table, we cannot omit it. */ - if (!dump_internal && !DECL_VINDEX (t) - && *IDENTIFIER_POINTER (decl_name) == '_') + if (!DECL_VINDEX (t) && *IDENTIFIER_POINTER (decl_name) == '_') { if (IDENTIFIER_POINTER (decl_name)[1] == '_') return 0; Index: c/c-decl.c =================================================================== --- c/c-decl.c (revision 192062) +++ c/c-decl.c (working copy) @@ -10079,10 +10079,10 @@ c_write_global_declarations (void) gcc_assert (!current_scope); /* Handle -fdump-ada-spec[-slim]. */ - if (dump_initialized_p (TDI_ada)) + if (flag_dump_ada_spec || flag_dump_ada_spec_slim) { /* Build a table of files to generate specs for */ - if (get_dump_file_info (TDI_ada)->pflags & TDF_SLIM) + if (flag_dump_ada_spec_slim) collect_source_ref (main_input_filename); else for_each_global_decl (collect_source_ref_cb); Index: cp/decl2.c =================================================================== --- cp/decl2.c (revision 192062) +++ cp/decl2.c (working copy) @@ -3698,9 +3698,9 @@ cp_write_global_declarations (void) cgraph_process_same_body_aliases (); /* Handle -fdump-ada-spec[-slim] */ - if (dump_initialized_p (TDI_ada)) + if (flag_dump_ada_spec || flag_dump_ada_spec_slim) { - if (get_dump_file_info (TDI_ada)->pflags & TDF_SLIM) + if (flag_dump_ada_spec_slim) collect_source_ref (main_input_filename); else collect_source_refs (global_namespace); Index: dumpfile.c =================================================================== --- dumpfile.c (revision 192062) +++ dumpfile.c (working copy) @@ -57,8 +57,7 @@ static struct dump_file_info dump_files[ 0, 0, 0, 5}, {".vcg", "tree-vcg", NULL, NULL, NULL, NULL, NULL, TDF_TREE, 0, 0, 0, 6}, - {".ads", "ada-spec", NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 7}, -#define FIRST_AUTO_NUMBERED_DUMP 8 +#define FIRST_AUTO_NUMBERED_DUMP 7 {NULL, "tree-all", NULL, NULL, NULL, NULL, NULL, TDF_TREE, 0, 0, 0, 0}, Index: dumpfile.h =================================================================== --- dumpfile.h (revision 192062) +++ dumpfile.h (working copy) @@ -37,7 +37,6 @@ enum tree_dump_index TDI_nested, /* dump each function after unnesting it */ TDI_vcg, /* create a VCG graph file for each function's flowgraph. */ - TDI_ada, /* dump declarations in Ada syntax. */ TDI_tree_all, /* enable all the GENERIC/GIMPLE dumps. */ TDI_rtl_all, /* enable all the RTL dumps. */ TDI_ipa_all, /* enable all the IPA dumps. */