aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorZack Weinberg <zack@gcc.gnu.org>2003-04-11 00:24:58 +0000
committerZack Weinberg <zack@gcc.gnu.org>2003-04-11 00:24:58 +0000
commit06790e5fd57528a3ee2822d392ff918c1c49abb7 (patch)
tree1fa5f9ae60027aff2b51248aca045b3cd343f3c3 /gcc/tree.c
parent5288c2a113d5dd42cecb9553edeb652616c77f8e (diff)
downloadgcc-06790e5fd57528a3ee2822d392ff918c1c49abb7.zip
gcc-06790e5fd57528a3ee2822d392ff918c1c49abb7.tar.gz
gcc-06790e5fd57528a3ee2822d392ff918c1c49abb7.tar.bz2
tree.c (tree_operand_check_failed): New function.
* tree.c (tree_operand_check_failed): New function. * tree.h (TREE_OPERAND_CHECK, TREE_OPERAND_CHECK_CODE, TREE_RTL_OPERAND_CHECK): New checking macros. (TREE_OPERAND, SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL, RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, WITH_CLEANUP_EXPR_RTL, CONSTRUCTOR_ELTS, LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY, EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL, TARGET_EXPR_CLEANUP): Use the new checking macros. From-SVN: r65452
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index ecee8f3..57d76b4 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -4587,6 +4587,22 @@ tree_vec_elt_check_failed (idx, len, file, line, function)
idx + 1, len, function, trim_filename (file), line);
}
+/* Similar to above, except that the check is for the bounds of the operand
+ vector of an expression node. */
+
+void
+tree_operand_check_failed (idx, code, file, line, function)
+ int idx;
+ enum tree_code code;
+ const char *file;
+ int line;
+ const char *function;
+{
+ internal_error
+ ("tree check: accessed operand %d of %s with %d operands in %s, at %s:%d",
+ idx + 1, tree_code_name[code], TREE_CODE_LENGTH (code),
+ function, trim_filename (file), line);
+}
#endif /* ENABLE_TREE_CHECKING */
/* For a new vector type node T, build the information necessary for