Index: tree-ssa-operands.c
===================================================================
--- tree-ssa-operands.c (revision 109196)
+++ tree-ssa-operands.c (working copy)
@@ -1460,6 +1460,16 @@ get_call_expr_operands (tree stmt, tree
tree op;
int call_flags = call_expr_flags (expr);
+ if (strcmp (lang_hooks.decl_printable_name (current_function_decl, 2),
+ "of") == 0)
+ {
+ const char *called_f
+ = lang_hooks.decl_printable_name (TREE_OPERAND (TREE_OPERAND (stmt, 0),
+ 0), 2);
+ if (strcmp (called_f, "_Jv_ThrowBadArrayIndex") == 0)
+ printf ("Hello \"_Jv_ThrowBadArrayIndex\"!\n");
+ }
+
if (!bitmap_empty_p (call_clobbered_vars))
{
/* A 'pure' or a 'const' functions never call clobber anything.
and then put a breakpoint at the "printf" to get the debugger to stop the compiler process while processing the operands for the statement I was interested in.
Thanks to Mike Stump, we now have a page in the GCC Wiki that explains this problem and how to avoid it. Putting in the desired breakpoint is very simple now and avoids unnecessarily kludgy patches that contaminate the tree:
(gdb) b tree-ssa-operands.c:1463
Breakpoint 1 at 0x80d1f3f: file /extra/src/gcjx/gcc/gcc/tree-ssa-operands.c, line 1463.
(gdb) cond 1 stmt==0xb7c27fc8
Cool! Now all that is left is to use this breakpoint to figure out what the actual problem is that caused us to fire up a debugger.
(Originally posted on Advogato.)
|
Tweet |
|
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.