This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Horrible ICE on alpha but not alphaev56


The following testcase, that I'm installing in gcc.dg, causes an
abort() within extract_bit_field(), when it calls int_mode_for_mode
with a VOIDmode.  I find it weird that expand_ref is using
extract_bit_field to expand the ARRAY_REF, but it seems that it ends
up using it because direct_load[QImode] is not available on plain
alpha (i.e., not alphaev*).  Shouldn't it fallback to DImode to avoid
having to use bitfields?  (If you haven't noticed, I'm totally
unfamiliar with the code in exp*.c, so I may be making no sense at all
:-)  Here's the testcase:

/* Simplified from ncurses 5.0's pad.c
   by Alexandre Oliva <oliva@lsd.ic.unicamp.br>

   Copyright (C) 1999 Free Software Foundation  */

/* { dg-do compile { xfail alpha-*-* } } */

extern char foo[1];
char foo[] = "";

int
bar()
{
  return foo[0];
}

-- 
Alexandre Oliva http://www.ic.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{lsd.ic.unicamp.br,guarana.{org,com}} aoliva@{acm,computer}.org
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]