4567449-1.c   [plain text]


/* APPLE LOCAL file radar 4567449 */
/* Sibcall outgoing arguments were being written over incoming arguments
   before the incoming arguments were being read, when the incoming args
   were partially in registers and partially on the stack.  */

int result;

typedef struct {
  int a;
  int b;
  int c;
  int d;
} s32_t;

void func2(int i, int j, s32_t s32) {
  result = s32.a + s32.b + s32.c + s32.d;
}

void func1(int i, int j, int k, s32_t s32) {
  func2(i, j, s32);
}

int main(int argc, const char *argv[]) {
  s32_t s32 = { 1, 2, 3, 4 };

  func1 (20, 30, 40, s32);
  return (result - 10);
}