(I indeed forgot about the static model which is the default for GNAT) On Sat, 2005-10-01 at 08:37 -0400, Robert Dewar wrote: > [...] You can of course check the order of elaboration by > looking at it. I would be surprised if there were a > bug in the statid elab model for such a simple case, > and indeed the elab order is certainly right in my > builds.
Looking at build/gcc/ada/tools/b_gnatm.c in my latest HEAD full bootstrap on x86-linux: $ make bootstrap ... ../../gnatbind -C -I- -I../rts -I. -I/home/guerby/work/gcc/version-head/gcc/ada -o b_gnatm.c gnatmake.ali ... $ cat gcc/ada/tools/b_gnatm.c ... void adainit (void) { ... osint___elabs (); osint__m___elabb (); osint__m_E++; ... osint___elabb (); osint_E++; ... } ... If I'm reading it correctly, osint body is elaborated after osint.m one, so there seem to be a bug. May be it doesn't trigger because in some condition/platform no code is needed at runtime for the default initialization of integer variables by a constant (done at link time) whereas on other platform it's not the case (does gnatbind knows about that?). Laurent