public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* looking for the developer of tree-dump.c
@ 2004-07-24 17:08 d43d41u5
0 siblings, 0 replies; 4+ messages in thread
From: d43d41u5 @ 2004-07-24 17:08 UTC (permalink / raw)
To: gcc-bugs
Hi !
For some reason the -fdump-translation-unit switch doesn't dumps the body of
the functions from the AST if I compile sources with .c extension. (there is
no "body:" in the .tu dumpfile) Are the functions bodies in the tree, but
not dumped, or are they stored somewhere else ?
I tried gcc-3.2.2 and gcc-3.4.1 too.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: looking for the developer of tree-dump.c
2004-07-26 13:38 ` Christian Ehrhardt
@ 2004-07-27 9:55 ` Gabriel Dos Reis
0 siblings, 0 replies; 4+ messages in thread
From: Gabriel Dos Reis @ 2004-07-27 9:55 UTC (permalink / raw)
To: Christian Ehrhardt; +Cc: d43d41u5, gcc, gcc-bugs, gcc-patches
Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de> writes:
| On Sat, Jul 24, 2004 at 09:04:57PM +0200, Gabriel Dos Reis wrote:
| > | For some reason the -fdump-translation-unit switch doesn't dumps the body of
| > | the functions from the AST if I compile sources with .c extension. (there is
| > | no "body:" in the .tu dumpfile) Are the functions bodies in the tree, but
| > | not dumped, or are they stored somewhere else ?
| >
| > I've come across the similar misbehaivour a week ago for mainline. I
| > think it is a regression introduced by the tree-ssa merge.
|
| It's probably a thinko in the way dump_enabled_p works for TDI_all.
| Users off dump_enabled_p expect that the function returns true if
| ANY dump is enabled whereas dump_enabled_p will only return true
| if ALL dumps were enabled via -fdump-tree-all.
|
| The following ad hoc patch works for me and fixes a few other cases
| where interesting things were not dumped.
Thanks. I think this should go on mainline, with appropriate
ChangeLog entries.
-- Gaby
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: looking for the developer of tree-dump.c
2004-07-24 19:03 ` Gabriel Dos Reis
@ 2004-07-26 13:38 ` Christian Ehrhardt
2004-07-27 9:55 ` Gabriel Dos Reis
0 siblings, 1 reply; 4+ messages in thread
From: Christian Ehrhardt @ 2004-07-26 13:38 UTC (permalink / raw)
To: Gabriel Dos Reis; +Cc: d43d41u5, gcc, gcc-bugs
On Sat, Jul 24, 2004 at 09:04:57PM +0200, Gabriel Dos Reis wrote:
> | For some reason the -fdump-translation-unit switch doesn't dumps the body of
> | the functions from the AST if I compile sources with .c extension. (there is
> | no "body:" in the .tu dumpfile) Are the functions bodies in the tree, but
> | not dumped, or are they stored somewhere else ?
>
> I've come across the similar misbehaivour a week ago for mainline. I
> think it is a regression introduced by the tree-ssa merge.
It's probably a thinko in the way dump_enabled_p works for TDI_all.
Users off dump_enabled_p expect that the function returns true if
ANY dump is enabled whereas dump_enabled_p will only return true
if ALL dumps were enabled via -fdump-tree-all.
The following ad hoc patch works for me and fixes a few other cases
where interesting things were not dumped.
Index: tree-dump.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/tree-dump.c,v
retrieving revision 1.27
diff -u -r1.27 tree-dump.c
--- tree-dump.c 7 Jul 2004 10:19:18 -0000 1.27
+++ tree-dump.c 26 Jul 2004 13:14:21 -0000
@@ -570,6 +590,11 @@
dump_child ("op 2", TREE_OPERAND (t, 2));
break;
+ case TRY_FINALLY_EXPR:
+ dump_child ("op 0", TREE_OPERAND (t, 0));
+ dump_child ("op 1", TREE_OPERAND (t, 1));
+ break;
+
case CALL_EXPR:
dump_child ("fn", TREE_OPERAND (t, 0));
dump_child ("args", TREE_OPERAND (t, 1));
@@ -592,6 +617,10 @@
dump_child ("cond", TREE_OPERAND (t, 0));
break;
+ case RETURN_EXPR:
+ dump_child ("expr", TREE_OPERAND (t, 0));
+ break;
+
case TARGET_EXPR:
dump_child ("decl", TREE_OPERAND (t, 0));
dump_child ("init", TREE_OPERAND (t, 1));
@@ -603,6 +632,29 @@
dump_child ("init", TREE_OPERAND (t, 3));
break;
+ case CASE_LABEL_EXPR:
+ dump_child ("name", CASE_LABEL (t));
+ if (CASE_LOW (t)) {
+ dump_child ("low ", CASE_LOW (t));
+ if (CASE_HIGH (t)) {
+ dump_child ("high", CASE_HIGH (t));
+ }
+ }
+ break;
+ case LABEL_EXPR:
+ dump_child ("name", TREE_OPERAND (t,0));
+ break;
+ case GOTO_EXPR:
+ dump_child ("labl", TREE_OPERAND (t, 0));
+ break;
+ case SWITCH_EXPR:
+ dump_child ("cond", TREE_OPERAND (t, 0));
+ dump_child ("body", TREE_OPERAND (t, 1));
+ if (TREE_OPERAND (t, 2))
+ {
+ dump_child ("labl", TREE_OPERAND (t,2));
+ }
+ break;
default:
/* There are no additional fields to print. */
break;
@@ -789,13 +841,28 @@
return stream;
}
-/* Returns nonzero if tree dump PHASE is enabled. */
+/* Returns nonzero if tree dump PHASE is enabled. If PHASE is
+ TDI_all, return nonzero if any dump is enabled. */
int
dump_enabled_p (enum tree_dump_index phase)
{
- struct dump_file_info *dfi = get_dump_file_info (phase);
- return dfi->state;
+ if (phase == TDI_all)
+ {
+ size_t i;
+ for (i = TDI_none + 1; i < (size_t) TDI_end; i++)
+ if (dump_files[i].state)
+ return 1;
+ for (i = 0; i < extra_dump_files_in_use; i++)
+ if (extra_dump_files[i].state)
+ return 1;
+ return 0;
+ }
+ else
+ {
+ struct dump_file_info *dfi = get_dump_file_info (phase);
+ return dfi->state;
+ }
}
/* Returns the switch name of PHASE. */
regards Christian
--
THAT'S ALL FOLKS!
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: looking for the developer of tree-dump.c
[not found] <000e01c471a9$ccfb27c0$0101010a@client>
@ 2004-07-24 19:03 ` Gabriel Dos Reis
2004-07-26 13:38 ` Christian Ehrhardt
0 siblings, 1 reply; 4+ messages in thread
From: Gabriel Dos Reis @ 2004-07-24 19:03 UTC (permalink / raw)
To: d43d41u5; +Cc: gcc, gcc-bugs
"d43d41u5" <daedalus@freemail.hu> writes:
| Hi !
|
| For some reason the -fdump-translation-unit switch doesn't dumps the body of
| the functions from the AST if I compile sources with .c extension. (there is
| no "body:" in the .tu dumpfile) Are the functions bodies in the tree, but
| not dumped, or are they stored somewhere else ?
I've come across the similar misbehaivour a week ago for mainline. I
think it is a regression introduced by the tree-ssa merge.
It is even worse than that: If you compile your translation unit with
g++ (from mainline), you'll still miss most (all?) function bodies,
except for member functions that are defined in their enclosing
classes.
-- Gaby
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-07-27 9:55 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-07-24 17:08 looking for the developer of tree-dump.c d43d41u5
[not found] <000e01c471a9$ccfb27c0$0101010a@client>
2004-07-24 19:03 ` Gabriel Dos Reis
2004-07-26 13:38 ` Christian Ehrhardt
2004-07-27 9:55 ` Gabriel Dos Reis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).