Bug in GCC

Jarek Pelczar jarekp3@wp.pl
Fri Feb 7 10:16:00 GMT 2003


I use GCC from DJGPP.
gcc -v dump:
Reading specs from c:/djgpp/lib/gcc-lib/djgpp/3.21/specs
Configured with: /devel/gnu/gcc/3.2/gnu/gcc-3.21/configure i586-pc-msdosdjgpp --prefix=/dev/env/DJDIR --disable-nls
Thread model: single
gcc version 3.2.1

When I try to comiple such program:
/* ------------------------------ CUT ------------------------------ */

#define TASK_MEMORY_START  0x1000000
#define MAX_TASK_MEMORY   (512<<12) /* Max 512MB */

static unsigned long TASK_MEMORY_BEGIN,TASK_MEMORY_END;

unsigned long * mem_map;
unsigned long * kernel_pgdir=(unsigned long *)0x70000;
unsigned long * kernel_pgtables;

#define mm_copy_page(dst,src) \
    __asm__("cld;rep;movsl"::"S"(src),"D"(dst),"c"(1024))

#define schedule() __asm__("call change_task");
    
void mm_boot_log(char * str)
{
 __asm__("call boot_log"::"S"(str));
}
  
void mm_panic(char * str)
{
 mm_boot_log(str);
 for(;;);
}

void mm_memory_avail_scan(void)
{
 register int i; 
 volatile unsigned long * p;
 TASK_MEMORY_BEGIN=TASK_MEMORY_START;
 p=(volatile unsigned long *)(TASK_MEMORY_BEGIN);
 for(i=TASK_MEMORY_BEGIN;i<MAX_TASK_MEMORY;i+=1024,p+=1024)
 {
  *p=0x1BADB002;
  if((*p)!=0x1BADB002) break;
 }
 TASK_MEMORY_END=i;
}

/* ------------------------------ CUT ------------------------------ */

I call:
gcc test.c -S -o test.s -O2 -fomit-frame-pointer

And I get invalid output file which contains (part of, only for mm_memory_avail_scan())

/* ------------------------------ CUT ------------------------------ */

.globl _mm_memory_avail_scan
_mm_memory_avail_scan:
 movl $16777216, _TASK_MEMORY_BEGIN
 movl $16777216, _TASK_MEMORY_END
 ret

/* ------------------------------ CUT ------------------------------ */

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://gcc.gnu.org/pipermail/gcc-bugs/attachments/20030207/1db0c985/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 2849 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-bugs/attachments/20030207/1db0c985/attachment.bin>


More information about the Gcc-bugs mailing list