My first patch didn't even compile :(
Here's a new one.
Something is marking random_seed as noreturn.
As far as I understand, symbols are marked as noreturn by use of
TREE_THIS_VOLATILE, which is done on a few selected trees and is
also done whenever a symbol has the noreturn attribute. This
noreturn attribute can be set to 1 by make_noreturn, but nothing
ever sets it to 0, which is probably why we're experiencing this
problem.
I have to go and not enough time to check it in detail, but perhaps
we should change that here:
Index: intrinsic.c
===================================================================
--- intrinsic.c (revision 114340)
+++ intrinsic.c (working copy)
@@ -254,6 +254,7 @@
next_sym->resolve = resolve;
next_sym->specific = 0;
next_sym->generic = 0;
+ next_sym->noreturn = 0;
break;
default: