Hi this is patch for BIT_FIELD_REFs on nonoverlapping_component_refs_p I comitted after testing on x86_64-linux
Honza Index: ChangeLog =================================================================== --- ChangeLog (revision 272379) +++ ChangeLog (working copy) @@ -1,3 +1,8 @@ +2019-06-17 Jan Hubicka <hubi...@ucw.cz> + + * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate + access path on BIT_FIELD_REFs. + 2019-06-17 Martin Liska <mli...@suse.cz> PR ipa/90874 Index: tree-ssa-alias.c =================================================================== --- tree-ssa-alias.c (revision 272379) +++ tree-ssa-alias.c (working copy) @@ -1268,7 +1268,8 @@ nonoverlapping_component_refs_p (const_t if (TREE_CODE (type) == RECORD_TYPE) fieldsx.safe_push (field); } - else if (TREE_CODE (x) == VIEW_CONVERT_EXPR) + else if (TREE_CODE (x) == VIEW_CONVERT_EXPR + || TREE_CODE (x) == BIT_FIELD_REF) fieldsx.truncate (0); x = TREE_OPERAND (x, 0); } @@ -1284,7 +1285,8 @@ nonoverlapping_component_refs_p (const_t if (TREE_CODE (type) == RECORD_TYPE) fieldsy.safe_push (TREE_OPERAND (y, 1)); } - else if (TREE_CODE (y) == VIEW_CONVERT_EXPR) + else if (TREE_CODE (y) == VIEW_CONVERT_EXPR + || TREE_CODE (y) == BIT_FIELD_REF) fieldsy.truncate (0); y = TREE_OPERAND (y, 0); }