+/**
+ * Check if the address can be decomposed into base PLUS offset.
+ */
+static int has_offset(ir_node *adr, int *offset) {
+ if (is_SymConst(adr)) {
+ *offset = 0;
+ return 1;
+ }
+ if (is_Sel(adr)) {
+ ir_entity *ent = get_Sel_entity(adr);
+ ir_type *owner = get_entity_owner(ent);
+
+ if (get_type_state(owner) != layout_fixed) {
+ /* The layout is NOT fixed yet, symbolic evaluation needed */
+ }
+ }
+ return 0;
+} /* has_offset */
+