C++ ICE with ntohs() and -mcpu=pentiumpro

Richard Henderson rth@cygnus.com
Wed Mar 22 17:00:00 GMT 2000


On Wed, Mar 22, 2000 at 08:01:26AM -0800, Mark Mitchell wrote:
> I'm happy to make the change -- but you're a lot more used to buliding
> kernels than I.  All I can easily do is the usual bootstrap/check, so
> it might make sense if you go for this one.  If you're willing.

Here's a minimal target independant test case, btw, if you'd
like to put it somewhere appropriate in the c++ testsuite.

typedef short T;
T foo()
{
  register T result;
  __asm__ __volatile__ ("" : "=&r"(result));
  return result;
}

Bootstrapped alphaev67-dec-linux-gnu and i686-pc-linux-gnu;
a 2.3.99 era kernel builds for both targets.  (I know for a
fact that due to other bugs it won't work on alpha, and I
didn't try the x86.)


r~

        * stmt.c (expand_asm_operands): Don't promote the temporary.

Index: stmt.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/stmt.c,v
retrieving revision 1.130
diff -c -p -d -r1.130 stmt.c
*** stmt.c	2000/03/19 05:26:48	1.130
--- stmt.c	2000/03/22 23:06:41
*************** expand_asm_operands (string, outputs, in
*** 1540,1546 ****
  	}
        else
  	{
! 	  output_rtx[i] = assign_temp (type, 0, 0, 0);
  	  TREE_VALUE (tail) = make_tree (type, output_rtx[i]);
  	}
  
--- 1540,1546 ----
  	}
        else
  	{
! 	  output_rtx[i] = assign_temp (type, 0, 0, 1);
  	  TREE_VALUE (tail) = make_tree (type, output_rtx[i]);
  	}
  


More information about the Gcc-patches mailing list