<div class="gmail_quote">On 6 March 2010 20:32, Anton Korobeynikov <span dir="ltr"><<a href="mailto:asl@math.spbu.ru">asl@math.spbu.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Author: asl<br>
Date: Sat Mar  6 13:32:29 2010<br>
New Revision: 97884<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=97884&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=97884&view=rev</a><br>
Log:<br>
Lower dynamic stack allocation on mingw32 to separate instruction.<br>
We cannot use a normal call here since it has extra unmodelled side<br>
effects (it changes stack pointer). This should fix PR5292.<br>
<br>
Modified:<br>
    llvm/trunk/lib/Target/X86/X86ISelLowering.cpp<br>
    llvm/trunk/lib/Target/X86/X86ISelLowering.h<br>
    llvm/trunk/lib/Target/X86/X86InstrInfo.td<br>
    llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp<br><br></blockquote><div><br></div><div>Anton,</div><div><br></div><div>AFAICT this has broken Cygwin LLVM-GCC in a strange way. I have bisected it down to this revision change.</div>

<div><br></div><div>Basically some typedef's in stddef.h when compiling gcc/config/i386/cygming-crtbegin.c are not being parsed properly, very strange I know.</div><div><br></div><div>Would you be able to look in to this please as I don't understand the ISelection area. Hopefully it is something simple.</div>

<div><br></div><div>~~~~</div><div><div>        /bin/sh /home/ang/svn/llvm-gcc-97884/gcc/mkconfig.sh tconfig.h</div><div>/home/ang/build/llvm-gcc-97884/./gcc/xgcc -B/home/ang/build/llvm-gcc-97884/./gcc</div><div>/ -B/home/ang/llvm-gcc-97884/i686-pc-cygwin/bin/ -B/home/ang/llvm-gcc-97884/i686</div>

<div>-pc-cygwin/lib/ -isystem /home/ang/llvm-gcc-97884/i686-pc-cygwin/include -isyste</div><div>m /home/ang/llvm-gcc-97884/i686-pc-cygwin/sys-include -O2 -O2 -g -O2  -DIN_GCC</div><div>  -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-</div>

<div>definition  -isystem ./include  -I. -I. -I/home/ang/svn/llvm-gcc-97884/gcc -I/ho</div><div>me/ang/svn/llvm-gcc-97884/gcc/. -I/home/ang/svn/llvm-gcc-97884/gcc/../include -I</div><div>/home/ang/svn/llvm-gcc-97884/gcc/../libcpp/include  -I/home/ang/svn/llvm-gcc-978</div>

<div>84/gcc/../libdecnumber -I../libdecnumber -I/home/ang/build/llvm-97884/include -I</div><div>/home/ang/svn/llvm-97884/include  -g0 -finhibit-size-directive -fno-inline-funct</div><div>ions -fno-exceptions -fno-zero-initialized-in-bss -fno-toplevel-reorder  -c -o c</div>

<div>rtbegin.o \</div><div>        /home/ang/svn/llvm-gcc-97884/gcc/config/i386/cygming-crtbegin.c</div><div>In file included from /home/ang/svn/llvm-gcc-97884/gcc/tsystem.h:47,</div><div>                 from /home/ang/svn/llvm-gcc-97884/gcc/config/i386/cygming-crtbegin.c:37:</div>

<div>/home/ang/build/llvm-gcc-97884/./gcc/include/stddef.h:152: error: expected ident</div><div>ifier or '(' before string constant</div><div>/home/ang/build/llvm-gcc-97884/./gcc/include/stddef.h:214: error: expected ident</div>

<div>ifier or '(' before string constant</div><div>/home/ang/build/llvm-gcc-97884/./gcc/include/stddef.h:326: error: expected ident</div><div>ifier or '(' before string constant</div><div>In file included from /usr/include/sys/_types.h:63,</div>

<div>                 from /usr/include/sys/reent.h:14,</div><div>                 from /usr/include/stdio.h:45,</div><div>                 from /home/ang/svn/llvm-gcc-97884/gcc/tsystem.h:90,</div><div>                 from /home/ang/svn/llvm-gcc-97884/gcc/config/i386/cygming-crtbe</div>

<div>gin.c:37:</div><div>/home/ang/build/llvm-gcc-97884/./gcc/include/stddef.h:355: error: expected ident</div><div>ifier or '(' before string constant</div><div>In file included from /usr/include/sys/reent.h:14,</div>

<div>                 from /usr/include/stdio.h:45,</div><div>                 from /home/ang/svn/llvm-gcc-97884/gcc/tsystem.h:90,</div><div>                 from /home/ang/svn/llvm-gcc-97884/gcc/config/i386/cygming-crtbe</div>

<div>gin.c:37:</div><div>/usr/include/sys/_types.h:72: error: expected specifier-qualifier-list before 'w</div><div>int_t'</div><div>In file included from /usr/include/stdio.h:65,</div><div>                 from /home/ang/svn/llvm-gcc-97884/gcc/tsystem.h:90,</div>

<div>                 from /home/ang/svn/llvm-gcc-97884/gcc/config/i386/cygming-crtbe</div><div>gin.c:37:</div><div>/usr/include/sys/stdio.h:38: error: expected declaration specifiers or '...' bef</div><div>ore 'size_t'</div>

<div>/usr/include/sys/stdio.h:39: error: expected declaration specifiers or '...' bef</div><div>ore 'size_t'</div><div>In file included from /home/ang/svn/llvm-gcc-97884/gcc/tsystem.h:90,</div><div>                 from /home/ang/svn/llvm-gcc-97884/gcc/config/i386/cygming-crtbe</div>

<div>gin.c:37:</div><div>/usr/include/stdio.h:181: error: expected declaration specifiers or '...' before</div><div> 'size_t'</div><div>/usr/include/stdio.h:209: error: expected ',' or ';' before 'fread'</div>

<div>/usr/include/stdio.h:210: error: expected ',' or ';' before 'fwrite'</div><div>/usr/include/stdio.h:248: error: expected declaration specifiers or '...' before</div><div> 'size_t'</div>

<div>/usr/include/stdio.h:248: error: format string argument not a string type</div><div>/usr/include/stdio.h:250: error: expected declaration specifiers or '...' before</div><div> 'size_t'</div><div>/usr/include/stdio.h:250: error: format string argument not a string type</div>

<div>/usr/include/stdio.h:271: error: expected declaration specifiers or '...' before</div><div> 'size_t'</div><div>~~~~</div><div><br></div><div>If you could give me a yay or nay as soon as is possible as this is a show stopper for Cygwin getting into the 2.7 release.</div>

<div><br></div><div>Thanks,</div><div><br></div><div>Aaron</div><div><br></div></div></div>