From: Till Harbaum Newsgroups: comp.os.msdos.djgpp Subject: Error in DJGPP? Date: 12 Feb 1998 11:03:53 +0100 Organization: TU Braunschweig, Informatik (Bueltenweg), Germany Lines: 57 Distribution: world Message-ID: NNTP-Posting-Host: flens.ibr.cs.tu-bs.de Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=ISO-8859-1 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Content-Transfer-Encoding: 8bit Precedence: bulk Hi! While compiling a compiler test program (config.c by Steven Pemberton) we detected a very strange problem with djgpp. Under all other os's we tested (linux-gcc, dos-quickc, tos-gcc and tos-turboc) this program just worked fine. Except with djgpp 2.01. The djgpp compiled binary just didn't do any output. If you flush output before the malloc thing everything is fine. If you don't flush output all text stored in the output buffers is lost. Am i doing something wrong? Is this a compiler error? Ciao, Till -- Dipl.-Inform. Till Harbaum Institute of Operating Systems and Computer Networks Tel.: +49 531 391-3101 Technical University of Braunschweig Fax.: +49 531 391-5936 Bültenweg 74/75, 38106 Braunschweig, Germany EMail: harbaum AT ibr DOT cs DOT tu-bs DOT de A program demonstrating the problem: /* Demonstration source for stdout/malloc error, use: */ /* gcc -Wall -s -DERROR=0 djgpper.c -o djgpper0.exe */ /* gcc -Wall -s -DERROR=1 djgpper.c -o djgpper1.exe */ /* djgpper0.exe > djgpper0.log */ /* djgpper1.exe > djgpper1.log */ #include #include #ifndef ERROR #error Please define ERROR=0 (work around) or ERROR=1 (wrong behavior) #endif int main(void) { unsigned long size; puts("This text you expect to see, but maybe you won't."); #if ERROR==0 fflush(stdout); #endif for (size=1<<(8*sizeof(unsigned long)-2); size!=0; size/=2) while (malloc(size)!=NULL); puts("Same to this text."); return(0); }