aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@google.com>2007-11-07 19:01:38 -0500
committerDiego Novillo <dnovillo@gcc.gnu.org>2007-11-07 19:01:38 -0500
commit6f09f3140c724335069034b6b43d391867d43267 (patch)
tree06efa0a928d92fb0ec421d6bddae19cebfe2145b /gcc/tree-flow.h
parente4fd5b87bf37f1a58194897e10fae8132470f84a (diff)
downloadgcc-6f09f3140c724335069034b6b43d391867d43267.zip
gcc-6f09f3140c724335069034b6b43d391867d43267.tar.gz
gcc-6f09f3140c724335069034b6b43d391867d43267.tar.bz2
re PR tree-optimization/33870 (miscompiles sqlite)
PR 33870 * tree.h (struct tree_struct_field_tag): Add field in_nested_struct. (SFT_IN_NESTED_STRUCT): Define. * tree-dfa.c (dump_subvars_for): Show offset of each sub-var. * tree-flow.h (struct fieldoff): Add field in_nested_struct. * tree-ssa-structalias.c (struct variable_info): Likewise. (push_fields_onto_fieldstack): If OFFSET is positive, set in_nested_struct. (create_variable_info_for): Copy setting of in_nested_struct from the field offset object. (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the variable info object. * tree-ssa-operands.c (add_vars_for_offset): If VAR belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR). testsuite/ChangeLog * gcc.c-torture/execute/pr33870.x: Remove. From-SVN: r129976
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r--gcc/tree-flow.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index 3421c14..1b63e95 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -1159,6 +1159,10 @@ struct fieldoff
/* Field. */
tree decl;
+ /* True if this field is inside a structure nested inside the base
+ containing object. */
+ unsigned int in_nested_struct : 1;
+
/* Offset from the base of the base containing object to this field. */
HOST_WIDE_INT offset;