This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] Fix CASE_LABEL_EXPR documentation in tree.def and tree-cfg.c
- From: Steven Bosscher <stevenb dot gcc at gmail dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 18 Apr 2012 17:32:08 +0200
- Subject: [patch] Fix CASE_LABEL_EXPR documentation in tree.def and tree-cfg.c
Subject says all. Will commit as obvious.
* tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
* tree-cfg.c (edge_to_cases): Fix documentation.
Index: tree.def
===================================================================
--- tree.def (revision 186526)
+++ tree.def (working copy)
@@ -876,10 +876,16 @@ DEFTREECODE (LOOP_EXPR, "loop_expr", tcc_statement
of all the cases. */
DEFTREECODE (SWITCH_EXPR, "switch_expr", tcc_statement, 3)
-/* Used to represent a case label. The operands are CASE_LOW and
- CASE_HIGH, respectively. If CASE_LOW is NULL_TREE, the label is a
- 'default' label. If CASE_HIGH is NULL_TREE, the label is a normal case
- label. CASE_LABEL is the corresponding LABEL_DECL. */
+/* Used to represent a case label.
+
+ Operand 0 is CASE_LOW. It may be NULL_TREE, in which case the label
+ is a 'default' label.
+ Operand 1 is CASE_HIGH. If it is NULL_TREE, the label is a simple
+ (one-value) case label. If it is non-NULL_TREE, the case is a range.
+ Operand 2 is CASE_LABEL, which is is the corresponding LABEL_DECL.
+ Operand 4 is CASE_CHAIN. This operand is only used in tree-cfg.c to
+ speed up the lookup of case labels which use a particular edge in
+ the control flow graph. */
DEFTREECODE (CASE_LABEL_EXPR, "case_label_expr", tcc_statement, 4)
/* Used to represent an inline assembly statement. ASM_STRING returns a
Index: tree-cfg.c
===================================================================
--- tree-cfg.c (revision 186526)
+++ tree-cfg.c (working copy)
@@ -56,7 +56,7 @@ static const int initial_cfg_capacity = 20;
/* This hash table allows us to efficiently lookup all CASE_LABEL_EXPRs
which use a particular edge. The CASE_LABEL_EXPRs are chained together
- via their TREE_CHAIN field, which we clear after we're done with the
+ via their CASE_CHAIN field, which we clear after we're done with the
hash table to prevent problems with duplication of GIMPLE_SWITCHes.
Access to this list of CASE_LABEL_EXPRs allows us to efficiently