On Fri, Sep 26, 2014 at 3:26 PM, Alexei Starovoitov <[email protected]> wrote: > On Fri, Sep 26, 2014 at 3:07 PM, Andy Lutomirski <[email protected]> wrote: >> On Fri, Sep 26, 2014 at 3:03 PM, Alexei Starovoitov <[email protected]> >> wrote: >>> On Fri, Sep 26, 2014 at 2:47 PM, Andy Lutomirski <[email protected]> >>> wrote: >>>> >>>> Can't you just disallow the 1-byte write to the stack? >>> >>> of course not. >>> That would be extremely limiting to users. >>> Can you actually see yourself living with stack that only >>> allows 8-byte writes/reads? >>> The stack usage will increase a lot, since all char/short >>> stack variables will become 8-byte... >> >> How about requiring that sub-8-byte stack accesses only be to integer slots? > > you mean to reject the sub-8-byte write early if it's going > into space where pointers were stored? > That will limit stack reuse. > gcc/llvm generate code where the same stack location > is used by different variables during life of the function. > So if I reject the write early, it will break otherwise valid > programs.
I think that a sub-8-byte write to an integer slot should leave it as an integer and a sub-8-byte write to a non-integer slot should turn that slot into an integer (if conversions to integer are permitted) or be rejected otherwise. gcc/llvm could emit an 8-byte write first, as needed, to make this valid. Alternatively, an integer stack slot could have a bitmask indicating which bytes are valid. --Andy -- Andy Lutomirski AMA Capital Management, LLC -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

