www.digitalmars.com         C & C++   DMDScript  

c++ - ANSI compiling issue

reply Laurentiu Pancescu <plaur crosswinds.net> writes:
Hi!

I'm having trouble compiling in ANSI mode (sc -A).  The
problems arise when including the standard header file "stdlib.h":
there are several functions which use "long long" and/or
"wchar_t".  Use example below (hello.c - C file, but we also get errors
in C++ mode):

#include <stdio.h>
#include <stdlib.h> /* we'll get errors here */

int main(void)
{
  printf("Hello, world!\n");
  exit(EXIT_SUCCESS);
}

Using -Aw solves the problems with wchar_t, but not the ones
with long long.  Anyway, the header files should ifdef out such
definitions in ANSI mode, because it prevents compiling
perfectly legal ANSI code, be it C or C++.  I don't think that a
compiler should choke at its own headers...

I'm using the 8.1c patch for the CD.  BTW, in the change log
for 8.18 it's written: "long longs no longer turned off by -A" -
then, why am I getting these errors?


Laurentiu Pancescu
Aug 19 2001
parent reply "Walter" <walter digitalmars.com> writes:
You're right, that's a bug and I'll get it fixed. -Walter

Laurentiu Pancescu wrote in message <9lp5t9$2f34$1 digitaldaemon.com>...
Hi!

I'm having trouble compiling in ANSI mode (sc -A).  The
problems arise when including the standard header file "stdlib.h":
there are several functions which use "long long" and/or
"wchar_t".  Use example below (hello.c - C file, but we also get errors
in C++ mode):

#include <stdio.h>
#include <stdlib.h> /* we'll get errors here */

int main(void)
{
  printf("Hello, world!\n");
  exit(EXIT_SUCCESS);
}

Using -Aw solves the problems with wchar_t, but not the ones
with long long.  Anyway, the header files should ifdef out such
definitions in ANSI mode, because it prevents compiling
perfectly legal ANSI code, be it C or C++.  I don't think that a
compiler should choke at its own headers...

I'm using the 8.1c patch for the CD.  BTW, in the change log
for 8.18 it's written: "long longs no longer turned off by -A" -
then, why am I getting these errors?


Laurentiu Pancescu
Aug 20 2001
parent reply Laurentiu Pancescu <plaur crosswinds.net> writes:
Great to hear this - Walter, you're very responsive, as always!
 When do you think the changes will be available for download?
 Sorry for reporting bugs <g> - DM is great, I really love
it!!!  Perhaps we could help spreading it by contributing with
makefiles to various projects: I don't see why V or FLTK, for
instance, can have project files for the commercial Borland or
Microsoft compilers, and not also for DigitalMars, which is also
available as a free download - it's really a pity!

I got into this ANSI problem while trying to compile NASM 0.98
with DM, and since NASM wants to be compiled in ANSI-C mode
with any compiler, I tried!!  BTW, NASM compiles without any
problems with a slightly modified version of Makefile.scw (CFLAGS=-c
-Jm -a1 -mn -o -w2 -w7 -6).  I had to use "relaxed type
checking", because otherwise DM gives errors in nasmlib.c, because
failing to convert pointers from type "void (*)(void)" to various
pointers to void-returning functions, but with various
arguments.  I also think this is wrong (I don't know if it also
happens with -A, since DM doesn't pass its own stdlib.h):
- the definition "void null_debug_routine() {}" is NOT the same
with "void null_debug_routine(void){}", in ANSI-C, because
lack of arguments means no info about the arguments, and not
"void" as argument list (this is only true in C++)
- pointer conversion is allowed in C without explicit cast: the
compiler might generate warnings in this case, but not errors.

This is, of course, in the light of my current C/C++ knowledge.
 I also compiled NASM 0.98 with gcc, lccwin32 and Borland C++
5.5.1, without any problems, in ANSI mode (not even "-Wall
-ansi -pedantic" doesn't complain at these conversions if compiling
with gcc-2.95.3).  So, I guess I can't be too wrong, but I
would be especially interested in Walter's or Jan's opinions about this.

How can I detect if my code compiles in ANSI-C++ mode, using
#ifdef?  According to spec, in ANSI-C mode, __STDC__ is defined,
and, when compiling C++, __cplusplus will be defined, and
__STDC__ not (this is implementation dependent: __STDC__ may, or may
not be defined, but it's not by most compilers).  How is this in DM?


Laurentiu Pancescu

"Walter" <walter digitalmars.com> wrote:

You're right, that's a bug and I'll get it fixed. -Walter

Laurentiu Pancescu wrote in message <9lp5t9$2f34$1 digitaldaemon.com>...
Hi!

I'm having trouble compiling in ANSI mode (sc -A).  The
problems arise when including the standard header file "stdlib.h":
there are several functions which use "long long" and/or
"wchar_t".  Use example below (hello.c - C file, but we also get errors
in C++ mode):

#include <stdio.h>
#include <stdlib.h> /* we'll get errors here */

int main(void)
{
  printf("Hello, world!\n");
  exit(EXIT_SUCCESS);
}

Using -Aw solves the problems with wchar_t, but not the ones
with long long.  Anyway, the header files should ifdef out such
definitions in ANSI mode, because it prevents compiling
perfectly legal ANSI code, be it C or C++.  I don't think that a
compiler should choke at its own headers...

I'm using the 8.1c patch for the CD.  BTW, in the change log
for 8.18 it's written: "long longs no longer turned off by -A" -
then, why am I getting these errors?


Laurentiu Pancescu
Aug 29 2001
parent reply "Walter" <walter digitalmars.com> writes:
I've attached a fixed stdlib.h. Try it with that one. -Walter


Laurentiu Pancescu wrote in message <9mjfb8$4ua$1 digitaldaemon.com>...
Great to hear this - Walter, you're very responsive, as always!
 When do you think the changes will be available for download?
 Sorry for reporting bugs <g> - DM is great, I really love
it!!!  Perhaps we could help spreading it by contributing with
makefiles to various projects: I don't see why V or FLTK, for
instance, can have project files for the commercial Borland or
Microsoft compilers, and not also for DigitalMars, which is also
available as a free download - it's really a pity!

I got into this ANSI problem while trying to compile NASM 0.98
with DM, and since NASM wants to be compiled in ANSI-C mode
with any compiler, I tried!!  BTW, NASM compiles without any
problems with a slightly modified version of Makefile.scw (CFLAGS=-c
-Jm -a1 -mn -o -w2 -w7 -6).  I had to use "relaxed type
checking", because otherwise DM gives errors in nasmlib.c, because
failing to convert pointers from type "void (*)(void)" to various
pointers to void-returning functions, but with various
arguments.  I also think this is wrong (I don't know if it also
happens with -A, since DM doesn't pass its own stdlib.h):
- the definition "void null_debug_routine() {}" is NOT the same
with "void null_debug_routine(void){}", in ANSI-C, because
lack of arguments means no info about the arguments, and not
"void" as argument list (this is only true in C++)
- pointer conversion is allowed in C without explicit cast: the
compiler might generate warnings in this case, but not errors.

This is, of course, in the light of my current C/C++ knowledge.
 I also compiled NASM 0.98 with gcc, lccwin32 and Borland C++
5.5.1, without any problems, in ANSI mode (not even "-Wall
-ansi -pedantic" doesn't complain at these conversions if compiling
with gcc-2.95.3).  So, I guess I can't be too wrong, but I
would be especially interested in Walter's or Jan's opinions about this.

How can I detect if my code compiles in ANSI-C++ mode, using
#ifdef?  According to spec, in ANSI-C mode, __STDC__ is defined,
and, when compiling C++, __cplusplus will be defined, and
__STDC__ not (this is implementation dependent: __STDC__ may, or may
not be defined, but it's not by most compilers).  How is this in DM?


Laurentiu Pancescu

"Walter" <walter digitalmars.com> wrote:

You're right, that's a bug and I'll get it fixed. -Walter

Laurentiu Pancescu wrote in message <9lp5t9$2f34$1 digitaldaemon.com>...
Hi!

I'm having trouble compiling in ANSI mode (sc -A).  The
problems arise when including the standard header file "stdlib.h":
there are several functions which use "long long" and/or
"wchar_t".  Use example below (hello.c - C file, but we also get errors
in C++ mode):

#include <stdio.h>
#include <stdlib.h> /* we'll get errors here */

int main(void)
{
  printf("Hello, world!\n");
  exit(EXIT_SUCCESS);
}

Using -Aw solves the problems with wchar_t, but not the ones
with long long.  Anyway, the header files should ifdef out such
definitions in ANSI mode, because it prevents compiling
perfectly legal ANSI code, be it C or C++.  I don't think that a
compiler should choke at its own headers...

I'm using the 8.1c patch for the CD.  BTW, in the change log
for 8.18 it's written: "long longs no longer turned off by -A" -
then, why am I getting these errors?


Laurentiu Pancescu
begin 666 stdlib.h M+RH 0V]P>7)I9VAT("A#*2 Q.3 V+3(P,#$ 8GD 1&EG:71A;"!-87)S+B D M4F5V:7-I;VXZ(#$N,2XQ+C, )" J+PT*(VEF(%]?4T-?7R!\?"!?7U)#0U]? M#0HC<')A9VUA(&]N8V4-"B-E;F1I9 T*#0HC:69N9&5F(%]?4U1$3$E"7T - M"B-D969I;F4 7U]35$1,24)?2" Q#0H-"B-I9B!?7V-P;'5S<&QU<PT*97AT M97)N(")#(B![#0HC96YD:68-" T*+RH 1&5F:6YE(%]#4E1!4$DQ("AF;W( M8V]M<&%T:6)I;&ET>2!W:71H('1H92!.5"!31$LI("HO#0HC:69N9&5F(%]# M4E1!4$DQ#0HC9&5F:6YE(%]#4E1!4$DQ(%]?8V1E8VP-"B-E;F1I9 T*#0HO M*B!$969I;F4 7T-25$%023( *&9O<B!C;VUP871I8FEL:71Y('=I=& =&AE M($Y4(%-$2RD *B\-"B-I9FYD968 7T-25$%023(-"B-D969I;F4 7T-25$%0 M23( 7U]C9&5C; T*(V5N9&EF#0H-"B\J($1E9FEN92!#4E1)35 *B\-"B-I M9FYD968 7T-25$E-4 T*(VEF(&1E9FEN960H7U=)3C,R*2 F)B!D969I;F5D M*%]$3$PI#0HC9&5F:6YE(%]#4E1)35 (%]?9&5C;'-P96,H9&QL:6UP;W)T M*0T*(V5L<V4-"B-D969I;F4 7T-25$E-4 T*(V5N9&EF#0HC96YD:68-" T* M(V1E9FEN92!%6$E47U-50T-%4U, (" P#0HC9&5F:6YE($58251?1D%)3%52 M12 (#$-" T*(VEF;F1E9B!.54Q,#0HC:69D968 7U]C<&QU<W!L=7,-"B-D M969I;F4 3E5,3" P#0HC96QS90T*(V1E9FEN92!.54Q,(" H=F]I9" J*3 I M#0HC96YD:68-"B-E;F1I9 T*#0IT>7!E9&5F('5N<VEG;F5D('-I>F5?=#L- M" T*+R\C:69N9&5F(%]?4U1$0U]?#0HC:68 (61E9FEN960H7U=#2$%27U1? M1$5&24Y%1"D-"G1Y<&5D968 =6YS:6=N960 <VAO<G0 =V-H87)?=#L-"B-D M969I;F4 7U=#2$%27U1?1$5&24Y%1" Q#0HC96YD:68-"B\O(V5N9&EF#0H- M"B-P<F%G;6$ <&%C:RA?7T1%1D%,24=.*0T*='EP961E9B!S=')U8W0 7T1) M5B![(&EN=" <75O="QR96T[('T 9&EV7W0[#0IT>7!E9&5F('-T<G5C="!? M3$1)5B![(&QO;F< <75O="QR96T[('T ;&1I=E]T.PT*(VEF(%]?24Y44TE: M12 ]/2 T#0IT>7!E9&5F('-T<G5C="!?3$Q$258 >R!L;VYG(&QO;F< <75O M="QR96T[('T ;&QD:79?=#L-"B-E;F1I9 T*(W!R86=M82!P86-K*"D-" T* M(VEF("%?7U-41$-?7PT*#0HC:68 (61E9FEN960H15)!3D=%*0T*(V1E9FEN M92!%4D%.1T4 ,S0-"B-E;F1I9 T*#0HC9&5F:6YE($A51T5?5D%,(" (" M(%]?:6YF#0H-"B-D969I;F4 4D%.1%]-05 (" (" ,S(W-C<-" T*(V1E M9FEN92!?9&EV7W0 7T1)5 T*(V1E9FEN92!?;&1I=E]T(%],1$E6#0H-"B-I M9B!?7T]3,E]?("8F(%]?24Y44TE:12 ]/2 T#0HC9&5F:6YE(%]?0TQ)0B!? M7W-T9&-A;&P-"B-E;'-E#0HC9&5F:6YE(%]?0TQ)0B!?7V-D96-L#0HC96YD M:68-" T*(VEF9&5F(%]?3E1?7PT*97AT97)N(&EN="!?7T-,24()7U]L;V-A M;&5?;6)S:7IE.PT*(V1E9FEN92!-0E]#55)?34%8"5]?;&]C86QE7VUB<VEZ M90T*(V5L<V4-"B-D969I;F4 34)?0U527TU!6 DQ#0HC96YD:68-" T*(V5N M9&EF#0H-"B-D969I;F4 7TU!6%]0051((" ,C8P#0HC9&5F:6YE(%]-05A? M1%))5D4 (#,-"B-D969I;F4 7TU!6%]$25( (" ,C4V#0HC9&5F:6YE(%]- M05A?1DY!344 (#(U- T*(V1E9FEN92!?34%87T585" (" R-38-" T*(VEF M(&1E9FEN960H7TU4*0T*#0HC:68 (5]?4U1$0U]?#0IE>'1E<FX :6YT("I? M7T-,24( 7V5R<FYO("AV;VED*3L-"B-D969I;F4 97)R;F\ *"I?97)R;F\H M*2D-"B-E;F1I9 T*97AT97)N(&EN=" J7U]#3$E"(%]?9&]S97)R;F\ *'9O M:60I.PT*(V1E9FEN92!?9&]S97)R;F\ *"I?7V1O<V5R<FYO(" I*0T*#0HC M96QS90T*#0HC:68 (5]?4U1$0U]?#0IE>'1E<FX :6YT(%]?0TQ)0B!E<G)N M;SL-"B-E;F1I9 T*97AT97)N(&EN="!?7T-,24( 7V1O<V5R<FYO.PT*#0HC M96YD:68-" T*9&]U8FQE(%]?0TQ)0B!A=&]F*&-O;G-T(&-H87( *BD[#0HC M9&5F:6YE(%]A=&]L9"!A=&]F#0II;G0 (" 7U]#3$E"(&%T;VDH8V]N<W0 M8VAA<B J*3L-"FQO;F< ("!?7T-,24( 871O;"AC;VYS="!C:&%R("HI.PT* M9&]U8FQE(%]?0TQ)0B!S=')T;V0H8V]N<W0 8VAA<B J+&-H87( *BHI.PT* M;&]N9R!D;W5B;&4 7U]#3$E"('-T<G1O;&0H8V]N<W0 8VAA<B J+&-H87( M*BHI.PT*;&]N9R (%]?0TQ)0B!S=')T;VPH8V]N<W0 8VAA<B J+&-H87( M*BHL:6YT*3L-"G5N<VEG;F5D(&QO;F< (%]?0TQ)0B!S=')T;W5L*&-O;G-T M(&-H87( *BQC:&%R("HJ+&EN="D[#0HC:68 7U])3E1325I%(#T](#0-"FQO M;F< ;&]N9R (%]?0TQ)0B!A=&]L;"AC;VYS="!C:&%R("HI.PT*;&]N9R!L M;VYG(" 7U]#3$E"('-T<G1O;&PH8V]N<W0 8VAA<B J+&-H87( *BHL:6YT M*3L-"G5N<VEG;F5D(&QO;F< ;&]N9R!?7T-,24( <W1R=&]U;&PH8V]N<W0 M8VAA<B J+&-H87( *BHL:6YT*3L-"B-E;F1I9 T*:6YT(" (%]?0TQ)0B!R M86YD*'9O:60I.PT*=F]I9" (%]?0TQ)0B!S<F%N9"AU;G-I9VYE9"D[#0II M;G0 (" 7U]#3$E"(')A;F1O;2AI;G0 ;G5M*3L-"G9O:60 (" 7U]#3$E" M(')A;F1O;6EZ92AV;VED*3L-"E]#4E1)35 =F]I9" J(%]?0TQ)0B!C86QL M;V,H<VEZ95]T+'-I>F5?="D[#0I?0U)424U0('9O:60 ("!?7T-,24( 9G)E M92AV;VED("HI.PT*7T-25$E-4"!V;VED("H 7U]#3$E"(&UA;&QO8RAS:7IE M7W0I.PT*7T-25$E-4"!V;VED("H 7U]#3$E"(')E86QL;V,H=F]I9" J+'-I M>F5?="D[#0IV;VED(" 7U]#3$E"(&%B;W)T*'9O:60I.PT*:6YT(" (%]? M0TQ)0B!A=&5X:70H=F]I9" H*BDH=F]I9"DI.PT*=F]I9" (%]?0TQ)0B!E M>&ET*&EN="D[#0IV;VED(" 7U]#3$E"(%]E>&ET*&EN="D[#0IV;VED(" M7U]#3$E"(%]%>&ET*&EN="D[#0H-"E]#4E1)35 8VAA<B J(%]?0TQ)0B!G M971E;G8H8V]N<W0 8VAA<B J*3L-"FEN=" ("!?7T-,24( <WES=&5M*&-O M;G-T(&-H87( *BD[#0IV;VED("H 7U]#3$E"(&)S96%R8V H8V]N<W0 =F]I M9" J+&-O;G-T('9O:60 *BQS:7IE7W0L<VEZ95]T+ T*(" (" (&EN=" H M7U]#3$E"("HI*&-O;G-T('9O:60 *BQC;VYS="!V;VED("HI*3L-"G9O:60 M("!?7T-,24( <7-O<G0H=F]I9" J+'-I>F5?="QS:7IE7W0L#0H (" (" M:6YT("A?7T-,24( *BDH8V]N<W0 =F]I9" J+&-O;G-T('9O:60 *BDI.PT* M:6YT(" (%]?0TQ)0B!A8G,H:6YT*3L-"FQO;F< ("!?7T-,24( ;&%B<RAL M;VYG*3L-"F1I=E]T("!?7T-,24( 9&EV*&EN="QI;G0I.PT*;&1I=E]T(%]? M0TQ)0B!L9&EV*&QO;F<L;&]N9RD[#0HC:68 7U])3E1325I%(#T](#0-"FQO M;F< ;&]N9R (%]?0TQ)0B!L;&%B<RAL;VYG(&QO;F<I.PT*;&QD:79?="!? M7T-,24( ;&QD:78H;&]N9R!L;VYG+"!L;VYG(&QO;F<I.PT*(V5N9&EF#0II M;G0 (" 7U]#3$E"(&UB;&5N*&-O;G-T(&-H87( *BP <VEZ95]T*3L-"G-I M>F5?="!?7T-,24( 7VUB<W1R;&5N*&-O;G-T(&-H87( *BD[#0II;G0 (" M7U]#3$E"(&UB=&]W8RAW8VAA<E]T("HL(&-O;G-T(&-H87( *BP <VEZ95]T M*3L-"FEN=" ("!?7T-,24( =V-T;VUB*&-H87( *BP =V-H87)?="D[#0IS M:7IE7W0 7U]#3$E"(&UB<W1O=V-S*'=C:&%R7W0 *BP 8V]N<W0 8VAA<B J M+"!S:7IE7W0I.PT*<VEZ95]T(%]?0TQ)0B!W8W-T;VUB<RAC:&%R("HL(&-O M;G-T('=C:&%R7W0 *BP <VEZ95]T*3L-"G9O:60 ("!?7T-,24( <&5R<F]R M*&-O;G-T(&-H87( *BD[#0HC:69N9&5F('1O=7!P97(-"FEN=" ("!?7T-, M24( =&]U<'!E<BAI;G0I.PT*(V5N9&EF#0HC:69N9&5F('1O;&]W97(-"FEN M=" ("!?7T-,24( =&]L;W=E<BAI;G0I.PT*(V5N9&EF#0H-"G5N<VEG;F5D M(" (" (%]?0TQ)0B!?<F]T;"AU;G-I9VYE9"QI;G0I.PT*=6YS:6=N960 M(" (" 7U]#3$E"(%]R;W1R*'5N<VEG;F5D+&EN="D[#0IU;G-I9VYE9"!L M;VYG("!?7T-,24( 7VQR;W1L*'5N<VEG;F5D(&QO;F<L:6YT*3L-"G5N<VEG M;F5D(&QO;F< (%]?0TQ)0B!?;')O='(H=6YS:6=N960 ;&]N9RQI;G0I.PT* M8VAA<B J(%]?0TQ)0B!?9G5L;'!A=& H8VAA<B J8G5F+&-O;G-T(&-H87( M*G!A=& L<VEZ95]T(&)U9FQE;BD[#0H-"B-I9B A7U]35$1#7U\-"B-D969I M;F4 9G5L;'!A=& (" (" 7V9U;&QP871H#0HC96YD:68-" T*97AT97)N M(&EN="!?7T-,24( <WES7VYE<G([#0IE>'1E<FX 8VAA<B J(%]?0TQ)0B!S M>7-?97)R;&ES=%M=.PT*(V1E9FEN92!?<WES7VYE<G( <WES7VYE<G(-"B-D M969I;F4 7W-Y<U]E<G)L:7-T('-Y<U]E<G)L:7-T#0H-"B-I9FYD968 7U]3 M5$1#7U\-" T*(VEF(%]?24Y44TE:12 ]/2 R#0II;G0 (" 7U]#3$E"(%]? M9F%R(%]F;6)L96XH8V]N<W0 8VAA<B!?7V9A<B J+'-I>F5?="D[#0II;G0 M(" 7U]#3$E"(%]?9F%R(%]F;6)T;W=C*'=C:&%R7W0 7U]F87( *BQC;VYS M="!C:&%R(%]?9F%R("HL<VEZ95]T*3L-"FEN=" ("!?7T-,24( 7U]F87( M7V9W8W1O;6(H8VAA<B!?7V9A<B J+'=C:&%R7W0I.PT*<VEZ95]T(%]?0TQ) M0B!?7V9A<B!?9FUB<W1O=V-S*'=C:&%R7W0 7U]F87( *BP 8V]N<W0 8VAA M<B!?7V9A<B J+"!S:7IE7W0I.PT*<VEZ95]T(%]?0TQ)0B!?7V9A<B!?9G=C M<W1O;6)S*&-H87( 7U]F87( *BP 8V]N<W0 =V-H87)?="!?7V9A<B J+"!S M:7IE7W0I.PT*(V5L<V4-"FEN=" ("!?7T-,24( 7V9M8FQE;BAC;VYS="!C M:&%R(%]?9F%R("HL<VEZ95]T*3L-"FEN=" ("!?7T-,24( 7V9M8G1O=V,H M=V-H87)?="!?7V9A<B J+&-O;G-T(&-H87( 7U]F87( *BQS:7IE7W0I.PT* M:6YT(" (%]?0TQ)0B!?9G=C=&]M8BAC:&%R(%]?9F%R("HL=V-H87)?="D[ M#0IS:7IE7W0 7U]#3$E"(%]F;6)S=&]W8W,H=V-H87)?="!?7V9A<B J+"!C M;VYS="!C:&%R(%]?9F%R("HL('-I>F5?="D[#0IS:7IE7W0 7U]#3$E"(%]F M=V-S=&]M8G,H8VAA<B!?7V9A<B J+"!C;VYS="!W8VAA<E]T(%]?9F%R("HL M('-I>F5?="D[#0IU;G-I9VYE9"!L;VYG(&QO;F< 7U]#3$E"('-T<G1O=6QL M*&-O;G-T(&-H87( *BQC:&%R("HJ+&EN="D[#0HC96YD:68-" T*(VEF(%]? M24Y44TE:12 ]/2 R#0IE>'1E<FX 8VAA<B!?7V9A<B J7U]C9&5C;"!?<&=M M<'1R.PT*(V5L<V4-"F5X=&5R;B!C:&%R("I?7V-D96-L(%]P9VUP='([#0IE M>'1E<FX =V-H87)?=" J7U]C9&5C;"!?=W!G;7!T<CL-"B-E;F1I9 T*#0IE M>'1E<FX =6YS:6=N960 :6YT(%]?8V1E8VP 7V]S=F5R.PT*(VEF;F1E9B!? M7TY47U\-"F5X=&5R;B!U;G-I9VYE9"!S:&]R="!?7V-D96-L(%]P<W [#0IE M>'1E<FX =6YS:6=N960 8VAA<B!?7V-D96-L(%]O<VUA:F]R.PT*97AT97)N M('5N<VEG;F5D(&-H87( 7U]C9&5C;"!?;W-M:6YO<CL-"B-E;F1I9 T*#0HC M:69D968 7T1,3 T*97AT97)N(&EN=" J(%]?0TQ)0B!?7W!?7U]A<F=C*'9O M:60I.PT*97AT97)N(&-H87( *BHJ(%]?0TQ)0B!?7W!?7U]A<F=V*'9O:60I M.PT*97AT97)N('=C:&%R7W0 *BHJ(%]?0TQ)0B!?7W!?7U]W87)G=BAV;VED M*3L-"B-D969I;F4 7U]A<F=C"2 J7U]P7U]?87)G8R I*0T*(V1E9FEN92!? M7V%R9W8)*"I?7W!?7U]A<F=V*"DI#0HC9&5F:6YE(%]?=V%R9W8)*"I?7W!? M7U]W87)G=B I*0T*(V5L<V4-"F5X=&5R;B!I;G0 7U]C9&5C;"!?7V%R9V,[ M#0IE>'1E<FX 8VAA<B!?7V-D96-L("HJ(%]?87)G=CL-"F5X=&5R;B!W8VAA M<E]T(%]?8V1E8VP *BH 7U]W87)G=CL-"B-E;F1I9 T*#0HC:68 9&5F:6YE M9" H7U=)3C,R*0T*=V-H87)?=" J*B!?7T-,24( 7U]W<&%R<V5C;61L:6YE M*&-O;G-T('=C:&%R7W0 *BP :6YT("HI.PT*8VAA<B J*B!?7T-,24( 7U]P M87)S96-M9&QI;F4H8V]N<W0 8VAA<B J+"!I;G0 *BD[#0HC96YD:68-" T* M(VEF(&1E9FEN960H7U=)3D1/5U,I('Q\(&1E9FEN960H7U].5%]?*0T*97AT M97)N('5N<VEG;F5D(&-H87( 7U]C9&5C;"!?=VEN;6%J;W([#0IE>'1E<FX M=6YS:6=N960 8VAA<B!?7V-D96-L(%]W:6YM:6YO<CL-"F5X=&5R;B!U;G-I M9VYE9"!I;G0 7U]C9&5C;"!?=VEN=F5R.PT*(V5N9&EF#0H-"B-D969I;F4 M7T1/4U]-3T1%(# -"B-D969I;F4 7T]3,E]-3T1%(#$-"B-D969I;F4 7U=) M3E]-3T1%(#(-" T*(VEF("%?7U-41$-?7PT*(V1E9FEN92!$3U-?34]$12!? M1$]37TU/1$4-"B-D969I;F4 3U,R7TU/1$4 7T]3,E]-3T1%#0HC9&5F:6YE M(%=)3E]-3T1%(%]724Y?34]$10T*(V5N9&EF#0H-"F5X=&5R;B!U;G-I9VYE M9"!C:&%R(%]?8V1E8VP 7V]S;6]D93L-" T*(V1E9FEN92!?4D5!3%]-3T1% M(# -"B-D969I;F4 7U!23U1?34]$12 Q#0H-"F5X=&5R;B!U;G-I9VYE9"!C M:&%R(%]?8V1E8VP 7V-P=6UO9&4[#0H-"F5X=&5R;B!I;G0 7U]C9&5C;"!? M9FUO9&4[#0H-"G9O:60 7U]C9&5C;"!?<W!L:71P871H*&-O;G-T(&-H87( M*BP 8VAA<B J+&-H87( *BP 8VAA<B J+"!C:&%R("HI.PT*=F]I9"!?7V-D M96-L(%]M86ME<&%T:"AC:&%R("HL(&-O;G-T(&-H87( *BQC;VYS="!C:&%R M("HL(&-O;G-T(&-H87( *BP 8V]N<W0 8VAA<B J*3L-"G9O:60 7U]C9&5C M;"!?<V5A<F-H96YV*&-O;G-T(&-H87( *F9I;&5N86UE+"!C;VYS="!C:&%R M("IV87)N86UE+"!C:&%R("IP871H;F%M92D[#0H-"B-I;F-L=61E(#QH96%P M<W1A="YH/ T*#0I?0U)424U0(&EN="!?7V-D96-L(%]H96%P8VAK*'9O:60I M.PT*7T-25$E-4"!I;G0 7U]C9&5C;"!?:&5A<'-E="AU;G-I9VYE9"D[#0HC M:68 7U])3E1325I%(#T](#(-"FEN="!?7V-D96-L(%]H96%P861D*'9O:60 M7U]F87( *BQS:7IE7W0I.PT*(V5L<V4-"FEN="!?7V-D96-L(%]H96%P861D M*'9O:60 *BQS:7IE7W0I.PT*(V5N9&EF#0II;G0 7U]C9&5C;"!?:&5A<&UI M;BAV;VED*3L-" T*(VEF9&5F(%]?3E1?7PT*(V1E9FEN92!?97AP86YD(')E M86QL;V,-"B-E;'-E#0IV;VED("H 7U]C9&5C;"!?97AP86YD*'9O:60 *BQS M:7IE7W0I.PT*(V5N9&EF#0H-"E]#4E1)35 <VEZ95]T(%]?8V1E8VP 7VUS M:7IE*'9O:60 *BD[#0H-"B-I9B!?7TQ!4D=%7U\ ?'P 7U]#3TU004-47U\- M"G9O:60 *B!?7V-D96-L(%]F;6%L;&]C*'-I>F5?="D[#0IV;VED("H 7U]C M9&5C;"!?9F-A;&QO8RAS:7IE7W0L<VEZ95]T*3L-"G9O:60 *B!?7V-D96-L M(%]F<F5A;&QO8RAV;VED("HL<VEZ95]T*3L-"G9O:60 7U]C9&5C;"!?9F9R M964H=F]I9" J*3L-"G-I>F5?="!?7V-D96-L(%]F;7-I>F4H=F]I9" J*3L- M"G5N<VEG;F5D(&QO;F< 7U]C9&5C;"!C;W)E;&5F="AV;VED*3L-"G5N<VEG M;F5D(&QO;F< 7U]C9&5C;"!F87)C;W)E;&5F="AV;VED*3L-"B-I9B!?5TE. M1$]74PT*=F]I9"!?7VYE87( *B!?7V-D96-L(%]N;6%L;&]C*'-I>F5?="D[ M#0IV;VED(%]?;F5A<B J(%]?8V1E8VP 7VYC86QL;V,H<VEZ95]T+'-I>F5? M="D[#0IV;VED(%]?;F5A<B J(%]?8V1E8VP 7VYR96%L;&]C*'9O:60 7U]N M96%R("HL<VEZ95]T*3L-"G9O:60 7U]C9&5C;"!?;F9R964H=F]I9"!?7VYE M87( *BD[#0IS:7IE7W0 7U]C9&5C;"!?;FUS:7IE*'9O:60 7U]N96%R("HI M.PT*<VEZ95]T(%]?8V1E8VP 7VUE;6UA>"AV;VED*3L-"G-I>F5?="!?7V-D M96-L(%]M96UA=FPH=F]I9"D[#0IU;G-I9VYE9"!I;G0 7U]C9&5C;"!?9G)E M96-T*'-I>F5?="D[#0HC96YD:68-"B-E;'-E#0IV;VED("H 7U]C9&5C;"!? M;FUA;&QO8RAS:7IE7W0I.PT*=F]I9" J(%]?8V1E8VP 7VYC86QL;V,H<VEZ M95]T+'-I>F5?="D[#0IV;VED("H 7U]C9&5C;"!?;G)E86QL;V,H=F]I9" J M+'-I>F5?="D[#0IV;VED(%]?8V1E8VP 7VYF<F5E*'9O:60 *BD[#0IS:7IE M7W0 7U]C9&5C;"!?;FUS:7IE*'9O:60 *BD[#0IS:7IE7W0 7U]C9&5C;"!? M;65M;6%X*'9O:60I.PT*<VEZ95]T(%]?8V1E8VP 7VUE;6%V;"AV;VED*3L- M"G5N<VEG;F5D(&EN="!?7V-D96-L(%]F<F5E8W0H<VEZ95]T*3L-"G5N<VEG M;F5D(%]?8V1E8VP 8V]R96QE9G0H=F]I9"D[#0IU;G-I9VYE9"!L;VYG(%]? M8V1E8VP 9F%R8V]R96QE9G0H=F]I9"D[#0HC:68 7U])3E1325I%(#T](#( M?'P *"%?7TY47U\ )B8 (5]?3U,R7U\I#0IV;VED(%]?9F%R("H 7U]C9&5C M;"!?9FUA;&QO8RAS:7IE7W0I.PT*=F]I9"!?7V9A<B J(%]?8V1E8VP 7V9C M86QL;V,H<VEZ95]T+'-I>F5?="D[#0IV;VED(%]?9F%R("H 7U]C9&5C;"!? M9G)E86QL;V,H=F]I9"!?7V9A<B J+'-I>F5?="D[#0IV;VED(%]?8V1E8VP M7V9F<F5E*'9O:60 7U]F87( *BD[#0IS:7IE7W0 7U]C9&5C;"!?9FUS:7IE M*'9O:60 7U]F87( *BD[#0HC96YD:68-"B-E;F1I9 T*#0HC:68 7U])3E13 M25I%(#T](#(-"G9O:60 7U]H=6=E("I?:&%L;&]C("AL;VYG+"!S:7IE7W0I M.PT*=F]I9"!?:&9R964 *'9O:60 7U]H=6=E("HI.PT*(V5N9&EF#0H-"F-H M87( *B!?7T-,24( :71O82AI;G0L8VAA<B J+&EN="D[#0IC:&%R("H 7U]# M3$E"(%]I=&]A*&EN="P 8VAA<B J+&EN="D[#0IC:&%R("H 7U]#3$E"(&QT M;V$H;&]N9RP 8VAA<B J+"!I;G0I.PT*8VAA<B J(%]?0TQ)0B!?;'1O82AL M;VYG+"!C:&%R("HL:6YT*3L-"F-H87( *B 7U]#3$E"('5L=&]A*'5N<VEG M;F5D(&QO;F<L(&-H87( *BP :6YT*3L-"F-H87( *B!?7T-,24( 96-V="AD M;W5B;&4L:6YT+&EN=" J+&EN=" J*3L-"F-H87( *B!?7T-,24( 9F-V="AD M;W5B;&4L:6YT+&EN=" J+&EN=" J*3L-"F-H87( *B!?7T-,24( 7V9C=G0H M9&]U8FQE+&EN="QI;G0 *BQI;G0 *BD[#0IC:&%R("H 7U]#3$E"(&=C=G0H M9&]U8FQE+&EN="QC:&%R("HI.PT*=F]I9" J(%]?8V1E8VP <V)R:RAS:7IE M7W0I.PT*=F]I9" (%]?0TQ)0B!S=V%B*&-H87( *BQC:&%R("HL<VEZ95]T M*3L-"F9L;V%T("!?7T-,24( <W1R=&]F*&-O;G-T(&-H87( *BQC:&%R("HJ M*3L-"B-D969I;F4 7W-W86( <W=A8 T*(V1E9FEN92!?96-V="!E8W9T#0HC M9&5F:6YE(%]G8W9T(&=C=G0-"B-I9B A7U=)3C,R#0HC9&5F:6YE('-T<G1O M;&0 (" (" ('-T<G1O9 T*(V5N9&EF#0HC9&5F:6YE(%]S=')T;VQD(" M(" ('-T<G1O;&0-"B-D969I;F4 7W5L=&]A('5L=&]A#0IV;VED(%]?<W, M*B ("!?7T-,24( 86QL;V-A*'-I>F5?="D[#0HC9&5F:6YE(%]A;&QO8V$ M86QL;V-A#0IS:7IE7W0 7U]#3$E"('-T86-K879A:6PH=F]I9"D[#0IS:7IE M7W0 7U]#3$E"(%]C:&MS=&%C:RAV;VED*3L-"B-D969I;F4 7W-T86-K879A M:6P <W1A8VMA=F%I; T*#0HC:68 7U])3E1325I%(#T](#0-"FEN="!?7V-D M96-L(%]F871E>&ET("AV;VED("A?7V-D96-L("IF=6YC*2AV;VED*2D[#0IT M>7!E9&5F('9O:60 *%]?8V1E8VP *B!?9F]N97AI=%]T*2AV;VED*3L-"E]F M;VYE>&ET7W0 7U]C9&5C;"!?9F]N97AI=" H7V9O;F5X:71?="!F=6YC*3L- M"B-E;'-E#0II;G0 7U]C9&5C;"!?7V9A<B!?9F%T97AI=" H=F]I9" H7U]C M9&5C;"!?7V9A<B J9G5N8RDH=F]I9"DI.PT*='EP961E9B!V;VED("A?7V-D M96-L(%]?9F%R("H 7V9O;F5X:71?="DH=F]I9"D[#0I?9F]N97AI=%]T(%]? M8V1E8VP 7U]F87( 7V9O;F5X:70 *%]F;VYE>&ET7W0 9G5N8RD[#0HC96YD M:68-" T*='EP961E9B!V;VED("A?7V-D96-L("H 7V]N97AI=%]T*2AV;VED M*3L-"E]O;F5X:71?="!?7V-D96-L(%]O;F5X:70 *%]O;F5X:71?="!F=6YC M*3L-" T*(VEF;F1E9B!?7U-41$-?7PT*(V1E9FEN92!O;F5X:70 7V]N97AI M= T*(V5N9&EF#0H-"B-I9B!?7TE.5%-)6D4 /3T , T*=F]I9"!?7V9A<B J M(%]?9F%R(%]?0TQ)0B!?7VUA;&QO8V8H<VEZ95]T*3L-"G9O:60 (" (" M(%]?9F%R(%]?0TQ)0B!?7V9R965F*'9O:60 7U]F87( *BD[#0HC96YD:68- M"E]#4E1)35 :6YT(" (" (" (" 7U]#3$E"('!U=&5N=BAC;VYS="!C M:&%R("HI.PT*#0HC9&5F:6YE(%]P=71E;G8 <'5T96YV#0H-"B\J($UI;B!A M;F0 36%X(&UA8W)O<R!U<V5F=6P :6X 8F]T:"!#(&%N9"!#4% *B\-"B-D M969I;F4 7U]M87 H82QB*2 (" (" (" (" H*&$I(#X *&(I*2 _("AA M*2 Z("AB*2D-"B-D969I;F4 7U]M:6XH82QB*2 (" (" (" (" H*&$I M(#P *&(I*2 _("AA*2 Z("AB*2D-" T*#0HC:69N9&5F(%]?8W!L=7-P;'5S M#0H-"B-I9FYD968 ;6%X#0HC9&5F:6YE(&UA>"AA+&(I(" (" (" (" M*" H82D /B H8BDI(#\ *&$I(#H *&(I*0T*(V5N9&EF#0H-"B-I9FYD968 M;6EN#0HC9&5F:6YE(&UI;BAA+&(I(" (" (" (" *" H82D /" H8BDI M(#\ *&$I(#H *&(I*0T*(V5N9&EF#0HC96YD:68-" T*97AT97)N(&EN=" H M7U]F87( 7U]C9&5C;" J7VUA;&QO8U]H86YD;&5R*2AV;VED*3L-"F5X=&5R M;B!C:&%R("H 7U]C9&5C;"!?96YV<'1R.PT*(VEF9&5F(%]$3$P-"E]#4E1) M35 8VAA<B J*BI?7T-,24( 7W!?96YV:7)O;B H=F]I9"D[#0HC9&5F:6YE M(%]E;G9I<F]N(" J7W!?96YV:7)O;B I*0T*(V5L<V4-"F5X=&5R;B!C:&%R M("HJ(%]?8V1E8VP 7V5N=FER;VX[#0HC96YD:68-" T*(V1E9FEN92!E;G9I M<F]N(%]E;G9I<F]N#0H-"B-I9F1E9B!?7TY47U\-"B-D969I;F4 7V%E;G9P M='( 7V5N=G!T< T*97AT97)N('=C:&%R7W0 *B!?7V-D96-L(%]W96YV<'1R M.PT*(VEF9&5F(%]$3$P-"E]#4E1)35 =V-H87)?=" J*BI?7T-,24( 7W!? M=V5N=FER;VX *'9O:60I.PT*(V1E9FEN92!?=V5N=FER;VX *"I?<%]W96YV M:7)O;B I*0T*(V5L<V4-"F5X=&5R;B!W8VAA<E]T("HJ(%]?8V1E8VP 7W=E M;G9I<F]N.PT*(V5N9&EF#0H-"B-D969I;F4 =V5N=FER;VX 7W=E;G9I<F]N M#0HC96YD:68-" T*(VEF("$H9&5F:6YE9" H7U=)3D1/5U,I('Q\(&1E9FEN M960 *%]?3E1?7RD ?'P 9&5F:6YE9" H1$]3,S V*2D-"F5X=&5R;B!I;G0 M7U]#3$E"(%]F:6QE:6YF;SL-"B-E;F1I9 T*#0HC:68 35]53DE8('Q\($U? M6$5.25 -"F5X=&5R;B!C:&%R("H 7U]C9&5C;"!O<'1A<F<[#0IE>'1E<FX M:6YT(%]?8V1E8VP ;W!T:6YD.PT*97AT97)N(&EN="!?7V-D96-L(&]P=&5R M<CL-"F5X=&5R;B!I;G0 7U]C9&5C;"!O<'1O<'0[#0HC96YD:68-" T*(V5N M9&EF#0H-"B-I9F1E9B!?7TY47U\-"B-I9FYD968 7U]35$1#7U\-"FEN="!? M7T-,24( 7W=T;VDH8V]N<W0 =V-H87)?=" J*3L-"FQO;F< 7U]#3$E"(%]W M=&]L*&-O;G-T('=C:&%R7W0 *BD[#0ID;W5B;&4 7U]#3$E"('=C<W1O9"AC M;VYS="!W8VAA<E]T("HL('=C:&%R7W0 *BHI.PT*;&]N9R!D;W5B;&4 7U]# M3$E"('=C<W1O;&0H8V]N<W0 =V-H87)?=" J+"!W8VAA<E]T("HJ*3L-"FQO M;F< 7U]#3$E"('=C<W1O;"AC;VYS="!W8VAA<E]T("HL('=C:&%R7W0 *BHL M(&EN="D[#0IU;G-I9VYE9"!L;VYG(%]?0TQ)0B!W8W-T;W5L*&-O;G-T('=C M:&%R7W0 *BP =V-H87)?=" J*BP :6YT*3L-"FQO;F< ;&]N9R!?7T-,24( M=V-S=&]L;"AC;VYS="!W8VAA<E]T("HL('=C:&%R7W0 *BHL(&EN="D[#0IU M;G-I9VYE9"!L;VYG(&QO;F< 7U]#3$E"('=C<W1O=6QL*&-O;G-T('=C:&%R M7W0 *BP =V-H87)?=" J*BP :6YT*3L-"E]#4E1)35 =V-H87)?=" J(%]? M0TQ)0B!?=V=E=&5N=BAC;VYS="!W8VAA<E]T("HI.PT*:6YT(%]?0TQ)0B!? M=W-Y<W1E;2AC;VYS="!W8VAA<E]T("HI.PT*=V-H87)?=" J(%]?0TQ)0B!? M:71O=RAI;G0L('=C:&%R7W0 *BP :6YT*3L-"G=C:&%R7W0 *B!?7T-,24( M7VQT;W<H;&]N9RP =V-H87)?=" J+"!I;G0I.PT*=V-H87)?=" J(%]?0TQ) M0B!?=6QT;W<H=6YS:6=N960 ;&]N9RP =V-H87)?=" J+"!I;G0I.PT*=V-H M87)?=" J(%]?0TQ)0B!?=V9U;&QP871H*'=C:&%R7W0 *BP 8V]N<W0 =V-H M87)?=" J+"!S:7IE7W0I.PT*=F]I9"!?7T-,24( 7W=M86ME<&%T:"AW8VAA M<E]T("HL(&-O;G-T('=C:&%R7W0 *BP 8V]N<W0 =V-H87)?=" J+"!C;VYS M="!W8VAA<E]T("HL(&-O;G-T('=C:&%R7W0 *BD[#0IV;VED(%]?0TQ)0B!? M=W!E<G)O<BAC;VYS="!W8VAA<E]T("HI.PT*7T-25$E-4"!I;G0 7U]#3$E" M(%]W<'5T96YV*&-O;G-T('=C:&%R7W0 *BD[#0IV;VED(%]?0TQ)0B!?=W-E M87)C:&5N=BAC;VYS="!W8VAA<E]T("HL(&-O;G-T('=C:&%R7W0 *BP =V-H M87)?=" J*3L-"G9O:60 7U]#3$E"(%]W<W!L:71P871H*&-O;G-T('=C:&%R M7W0 *BP =V-H87)?=" J+"!W8VAA<E]T("HL('=C:&%R7W0 *BP =V-H87)? M=" J*3L-"B-D969I;F4 :71O=R!?:71O=PT*(V1E9FEN92!L=&]W(%]L=&]W M#0HC9&5F:6YE('5L=&]W(%]U;'1O=PT*(V5N9&EF#0HC96YD:68-" T*(VEF C(%]?8W!L=7-P;'5S#0I]#0HC96YD:68-" T*(V5N9&EF#0H` ` end
Aug 29 2001
parent reply Laurentiu Pancescu <plaur crosswinds.net> writes:
Thanks, Walter!

It works fine for that small test program.  NASM still won't
compile in ANSI mode, because of those pointer conversions, and,
if I use -Jm in addition to -A, it cannot compile stdlib.h,
because wchar_t is unknown.

Why does DM consider that converting "void (*)()" to "void
(*)(int, FILE *)" is illegal in ANSI mode?  It should only emit
warnings, not errors, IMHO.  BTW, gcc -Wall -ansi -pedantic
doesn't even emit warnings for those implicit conversions, and
neither does Borland's bcc 5.5.1...  I know that using this kind of
implicit conversions is not recommended, but it's legal ANSI-C
code, isn't it?


Laurentiu Pancescu

"Walter" <walter digitalmars.com> wrote:

I've attached a fixed stdlib.h. Try it with that one. -Walter
Aug 31 2001
parent reply "Walter" <walter digitalmars.com> writes:
Why does it need to be compiled with -A?

Laurentiu Pancescu wrote in message <9moio6$5mo$1 digitaldaemon.com>...
Thanks, Walter!

It works fine for that small test program.  NASM still won't
compile in ANSI mode, because of those pointer conversions, and,
if I use -Jm in addition to -A, it cannot compile stdlib.h,
because wchar_t is unknown.

Why does DM consider that converting "void (*)()" to "void
(*)(int, FILE *)" is illegal in ANSI mode?  It should only emit
warnings, not errors, IMHO.  BTW, gcc -Wall -ansi -pedantic
doesn't even emit warnings for those implicit conversions, and
neither does Borland's bcc 5.5.1...  I know that using this kind of
implicit conversions is not recommended, but it's legal ANSI-C
code, isn't it?


Laurentiu Pancescu

"Walter" <walter digitalmars.com> wrote:

I've attached a fixed stdlib.h. Try it with that one. -Walter
Aug 31 2001
parent reply Laurentiu Pancescu <plaur crosswinds.net> writes:
"Walter" <walter digitalmars.com> wrote:

Why does it need to be compiled with -A?
Actually, I don't think it really *needs* that... I successfully compiled it without -A, and I ran it without any problems. NASM's authors claim that NASM can be compiled with any ANSI-C compliant compiler, and even more, for most compilers, they disable extensions and enforce strict ANSI-C mode. It was important for me because when you write a console-mode program, and want it to be really portable, you try to stick to strict ANSI (be it C or C++). The -A switch is very useful from this point of view, and I just wanted to test DM's ANSI-C compliance with something non-trivial... :) Do you expect there will be another patch version after 8.1c? Thanks again, Laurentiu
Sep 01 2001
parent "Walter" <walter digitalmars.com> writes:
Ok, I'm just glad you got NASM to work and this issue isn't blocking you.
There's already an 8.1d patch, but it doesn't address the void cast
problem. -Walter

Laurentiu Pancescu wrote in message <9mq7h3$186k$1 digitaldaemon.com>...
"Walter" <walter digitalmars.com> wrote:

Why does it need to be compiled with -A?
Actually, I don't think it really *needs* that... I successfully compiled it without -A, and I ran it without any problems. NASM's authors claim that NASM can be compiled with any ANSI-C compliant compiler, and even more, for most compilers, they disable extensions and enforce strict ANSI-C mode. It was important for me because when you write a console-mode program, and want it to be really portable, you try to stick to strict ANSI (be it C or C++). The -A switch is very useful from this point of view, and I just wanted to test DM's ANSI-C compliance with something non-trivial... :) Do you expect there will be another patch version after 8.1c? Thanks again, Laurentiu
Sep 01 2001