[I'm going to respond to this piece-meal, to make sure I don't drop
anything. My apologies for the long thread, but I'm pretty sure it's in
everybody's kill file by now.]
+ /* Be as conservative as possible on variable offsets. */
+ if (TREE_OPERAND (exp, 2)
+&& !host_integerp (TREE_OPERAND (exp, 2), 1))
+ {
+ *byte_offset = TREE_OPERAND (exp, 2);
+ *maxbits = BITS_PER_UNIT;
+ return;
+ }
shouldn't this be at the very beginning of the function? Because
you've set *bit_offset to an offset that was _not_ calculated relative
Sure. I assume in this case, *bit_offset would be 0, right?