------- Additional Comments From uweigand at gcc dot gnu dot org 2005-04-09 18:26 ------- Here's a reduced test case:
extern void abort (void); extern void **alloc (void); void *test (void) { void **p = alloc (); if (!p) abort (); __builtin_set_thread_pointer (p); return *p; } It would appear the __builtin_set_thread_pointer changes on s390 for GCC 4.0 have uncovered a latent bug in regmove; this pass now generates an invalid REG_DEAD note. I don't want to change regmove for 4.0, but I've found a back-end workaround which I'm currently testing ... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20917