linux-mips-fnet
[Top] [All Lists]

Compiler bug?

To: linux-mips@fnet.fr
Subject: Compiler bug?
From: Timothy Stonis <tim@cobaltmicro.com>
Date: Wed, 4 Jun 1997 13:56:43 -0800
Hi All,

 I've got a possible compiler bug I was wondering you could help me with.
Here's what I'm seeing in two places in the code (and who knows where else):

In fork.c there is:

        if (copy_mm(clone_flags,p))
                goto bad_fork_cleanup_sighand;

On entering this line of code, my "p" is valid (0x80fdb810) on exit from
the code it is invalid (0xFFFFFFF). If I put the following code immediately
after the call:

        p = *(&p);

My pointer magically reappears. I get the same fun behavior in dup_mmap()
surrounding the flush_tlb_mm() call (this is a 2.1.36 kernel). Maybe the
two are related?

 I'm running this on a RM5230. I thought it might be a cache problem, but
I've run the code with caches off and get the same behavior. I'm compiling
with the default CFLAGS... and using gcc 2.7.2-3 and binutils 2.7. Does
anyone have any ideas?

_Tim


<Prev in Thread] Current Thread [Next in Thread>