On Fri, Sep 26, 2014 at 3:26 PM, Alexei Starovoitov <ast@xxxxxxxxxxxx> wrote: > On Fri, Sep 26, 2014 at 3:07 PM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote: >> On Fri, Sep 26, 2014 at 3:03 PM, Alexei Starovoitov <ast@xxxxxxxxxxxx> wrote: >>> On Fri, Sep 26, 2014 at 2:47 PM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> 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-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html