From: Miroslav F. <cx...@nt...> - 2003-11-12 10:46:54
|
Hi, for my leak checker I need to execute leak checker registration for = atexit. It seemed like __init_priority__ attribute should help here = (similiar #pragma does the job using MSC compiler), but problem is that = it seems to be impossible to supply value that would insert code to be = executed before normal constructor without __init_priority__. Yes, I know workaround putting static constructor in header, but I = believe that would break precompiled header support in GCC3.4 Any other workaround ? Mirek P.S.: tried this: class Init { public: Init(const char *txt) { printf(txt); printf("\r\n"); } }; Init _alfa("alfa"); Init __attribute__ ((init_priority (1))) beta("beta"); int main() { getchar(); return 0; } but "alfa" still gets printed first.... |
From: <Tr...@se...> - 2003-11-13 11:13:44
|
Don't know if it works but try: __attribute__ ((constructor)) Jan Ringo=B9, Tr...@se... =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D P=F9vodn=ED zpr=E1v= a =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Od (From): "Miroslav Fidler" <cx...@nt...> Komu (To): min...@li... Kopie (Cc): P=F8edm=ECt (Subject): [Mingw-users] How to execute code before any glo= bal constructor? Datum (Date): 12. 11. 2003 11:55 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D > Hi, > > for my leak checker I need to execute leak checker registration for a= texit. It seemed like __init_priority__ attribute should help here (sim= iliar #pragma does the job using MSC compiler), but problem is that it = seems to be impossible to supply value that would insert code to be exe= cuted before normal constructor without __init_priority__. > > Yes, I know workaround putting static constructor in header, but I be= lieve that would break precompiled header support in GCC3.4 > > Any other workaround ? > > Mirek > > P.S.: tried this: > > class Init { > public: > Init(const char *txt) { > printf(txt); > printf("\r\n"); > } > }; > > Init _alfa("alfa"); > Init __attribute__ ((init_priority (1))) beta("beta"); > > int main() > { > getchar(); > return 0; > } > > but "alfa" still gets printed first.... ____________________________________________________________ PC DEXX za 16.990 s DPH! Athlon XP 2200+, CDRW, 80G, 17" monitor. Posle= dn=ED levn=FD n=E1kup p=F8ed V=E1noci! http://ad2.seznam.cz/redir.cgi?instanc= e=3D65270%26url=3Dhttp://www.dexx.cz/frame_Narsil_16a.htm |