delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1999/07/26/18:52:59

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
Sender: cygwin-owner AT sourceware DOT cygnus DOT com
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT sourceware DOT cygnus DOT com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin/>
List-Help: <mailto:cygwin-help AT sourceware DOT cygnus DOT com>,
<http://sourceware.cygnus.com/ml/#faqs>
Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com
Message-Id: <199907262250.AA00043@ha.bekkoame.ne.jp>
Date: Tue, 27 Jul 1999 07:50:56 +0900
To: cygwin AT sourceware DOT cygnus DOT com
Subject: bugs call __alloca
From: S DOT Yoshida AT ha DOT bekkoame DOT ne DOT jp
MIME-Version: 1.0
X-Mailer: AL-Mail32 Version 1.10

thanks for great project.:-

i could not compile. who was wrong? the source is..

#include <windows.h>
#include <stdio.h>

char *gptr;

void char1(char *ptr)
{
  printf("ptr = %08p gptr = %08p\n", ptr, gptr);
}

void __attribute__ ((regparm(3)))  char2(char *ptr)
{
  printf("ptr = %08p gptr = %08p\n", ptr, gptr);
}

void __attribute__ ((regparm(3)))  char3(char *ptr)
{
  char buf[0x8000]; // call __alloca does destroy some register (and ptr)
  printf("ptr = %08p gptr = %08p\n", ptr, gptr);
  buf[0] = '1';
}

void char4(char *ptr)
{
  char buf[0x8000];
  printf("ptr = %08p gptr = %08p\n", ptr, gptr);
  buf[0] = '2';
}

int main(int argc, char **argv[])
{
  char buf[100];
  gptr = buf;
  char1(buf);
  char2(buf);
  char3(buf);
  char4(buf);
  return 0;
}

ptr = 0253FDB0 gptr = 0253FDB0
ptr = 0253FDB0 gptr = 0253FDB0
ptr = 00401205 gptr = 0253FDB0 << ???
ptr = 0253FDB0 gptr = 0253FDB0

one idea is..
| push   32768
| call __allocapop

e_cygwin.bat is...
| @echo off
| apath -1 D:\CC\cygnus\cygwin-b20\H-i586-cygwin32\bin
| SET HOME=D:\CC\CYGNUS\USR
| SET SHELL=D:\CC\CYGNUS\BIN\SH.EXE
| SET ROOT=D:\
| SET MAKE_MODE=UNIX
| SET CYGWIN=notty binmode notitle nostrip_title glob envcache
| SET CYGINCLUDE=d:\cc\cygnus\cygwin~1\h-i586~1\i586-c~1\include
| SET CYGLIB=d:\cc\cygnus\cygwin~1\h-i586~1\i586-c~1\lib
| SET GCC_EXEC_PREFIX=D:\cc\cygnus\cygwin-b20\H-5386-cygwin32\lib\gcc-lib\
| SET TCL_LIBRARY=d:/cc/cygnus/cygwin-b20/tcl/lib/tcl7.6
| SET GDBTK_LIBRARY=d:/cc/cygnus/cygwin-b20/share/gdbtcl


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019