  Changed  CHECK_STOREPTR and CHECK_RETURNPTR to both find the top of the frame using either the address of __first_local (GCC) or the frame pointer (MSVC).  This means you can't omit the frame pointer when using cl.exe. (We can't use &__first_local here because MSVC reorders stack variables.)   Also, we get the frame pointer before calling CHECK_STOREPTR, which solves some inlining problems.   Finally, CHECK_STOREPTR now allows stack pointers to be stored inside locations on the current stack frame.  I added code to small2/checkstore.c to test this.
  Changed  CHECK_STOREPTR and CHECK_RETURNPTR to both find the top of the frame using either the address of __first_local (GCC) or the frame pointer (MSVC).  This means you can't omit the frame pointer when using cl.exe. (We can't use &__first_local here because MSVC reorders stack variables.)
  Also, we get the frame pointer before calling CHECK_STOREPTR, which solves some inlining problems.
  Finally, CHECK_STOREPTR now allows stack pointers to be stored inside locations on the current stack frame.  I added code to small2/checkstore.c to test this.

samuelhavron/obliv-c,samuelhavron/obliv-c,samuelhavron/obliv-c,samuelhavron/obliv-c