Re: Floating Point Issue

2007-09-28 Thread Bernd Petrovitsch
On Don, 2007-09-27 at 12:41 +0100, mahamuni ashish wrote: > I have small code And the relevance to the Linux kernel as such is? [] Add "-Wall -Wextra" and fix all errors and warnings. > Expected output is No. Bernd -- Firmix Software GmbH

Re: Floating Point Issue

2007-09-28 Thread Bernd Petrovitsch
On Don, 2007-09-27 at 12:41 +0100, mahamuni ashish wrote: I have small code And the relevance to the Linux kernel as such is? [] Add -Wall -Wextra and fix all errors and warnings. Expected output is No. Bernd -- Firmix Software GmbH http://www.firmix.at/

Re: Floating Point Issue

2007-09-27 Thread WANG Cong
On Thu, Sep 27, 2007 at 05:17:44PM +0200, Jan Engelhardt wrote: > >On Sep 27 2007 12:41, mahamuni ashish wrote: >>I have small code > >This is not a kernel problem. (Read your C book and/or ask in >a C newsgroup.) Please goto comp.lang.c for help. ;) -- "Bill, look, we understand that

Re: Floating Point Issue

2007-09-27 Thread Jan Engelhardt
On Sep 27 2007 16:53, linux-os (Dick Johnson) wrote: > >If Windows lets you get away with this, then Windows is broken. >memset(ch,'\0',strlen(ch) ); No, probably just the chance that the memory to which ch points had a nul in it or in the near bytes. Use valgrind, move along. >On Thu, 27 Sep

Re: Floating Point Issue

2007-09-27 Thread linux-os \(Dick Johnson\)
If Windows lets you get away with this, then Windows is broken. memset(ch,'\0',strlen(ch) ); 'ch' is uninitialized local data. Nobody knows what evil lurks... Thay said, the kernel will make sure that any data that gets put into your address-space doesn't contain anybody else's information

Re: Floating Point Issue

2007-09-27 Thread Trond Myklebust
On Thu, 2007-09-27 at 12:41 +0100, mahamuni ashish wrote: > I have small code > > #include > #include > > int main() > { > float f= 1256.35; > char ch[4]; > > printf("\n1. f : %f",f); > memset(ch,'\0',strlen(ch) ); > printf("\n2. f : %f",f); > return 0; > } > > Expected output is > 1. f

Re: Floating Point Issue

2007-09-27 Thread Al Viro
On Thu, Sep 27, 2007 at 12:41:41PM +0100, mahamuni ashish wrote: > I have small code > > #include > #include > > int main() > { > float f= 1256.35; > char ch[4]; > > printf("\n1. f : %f",f); > memset(ch,'\0',strlen(ch) ); strlen() applied to uninitialized array => undefined behaviour.

Re: Floating Point Issue

2007-09-27 Thread Xavier Bestel
On Thu, 2007-09-27 at 12:41 +0100, mahamuni ashish wrote: > int main() > { > float f= 1256.35; > char ch[4]; > > printf("\n1. f : %f",f); > memset(ch,'\0',strlen(ch) ); Can't work. ch[]'s content is undefined, so strlen(ch) may read anywhere in memory, and/or memset() write anywhere.

Re: Floating Point Issue

2007-09-27 Thread Jan Engelhardt
On Sep 27 2007 12:41, mahamuni ashish wrote: >I have small code This is not a kernel problem. (Read your C book and/or ask in a C newsgroup.) >char ch[4]; >memset(ch,'\0',strlen(ch) ); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to

Floating Point Issue

2007-09-27 Thread mahamuni ashish
I have small code #include #include int main() { float f= 1256.35; char ch[4]; printf("\n1. f : %f",f); memset(ch,'\0',strlen(ch) ); printf("\n2. f : %f",f); return 0; } Expected output is 1. f : 1256.35 2. f : 1256.35 But I am getting the output (on windows) 1. f : 1256.35 2. f :

Floating Point Issue

2007-09-27 Thread mahamuni ashish
I have small code #include stdio.h #include string.h int main() { float f= 1256.35; char ch[4]; printf(\n1. f : %f,f); memset(ch,'\0',strlen(ch) ); printf(\n2. f : %f,f); return 0; } Expected output is 1. f : 1256.35 2. f : 1256.35 But I am getting the output (on windows) 1. f : 1256.35

Re: Floating Point Issue

2007-09-27 Thread Jan Engelhardt
On Sep 27 2007 12:41, mahamuni ashish wrote: I have small code This is not a kernel problem. (Read your C book and/or ask in a C newsgroup.) char ch[4]; memset(ch,'\0',strlen(ch) ); - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL

Re: Floating Point Issue

2007-09-27 Thread Xavier Bestel
On Thu, 2007-09-27 at 12:41 +0100, mahamuni ashish wrote: int main() { float f= 1256.35; char ch[4]; printf(\n1. f : %f,f); memset(ch,'\0',strlen(ch) ); Can't work. ch[]'s content is undefined, so strlen(ch) may read anywhere in memory, and/or memset() write anywhere. Xav - To

Re: Floating Point Issue

2007-09-27 Thread Al Viro
On Thu, Sep 27, 2007 at 12:41:41PM +0100, mahamuni ashish wrote: I have small code #include stdio.h #include string.h int main() { float f= 1256.35; char ch[4]; printf(\n1. f : %f,f); memset(ch,'\0',strlen(ch) ); strlen() applied to uninitialized array = undefined behaviour.

Re: Floating Point Issue

2007-09-27 Thread Trond Myklebust
On Thu, 2007-09-27 at 12:41 +0100, mahamuni ashish wrote: I have small code #include stdio.h #include string.h int main() { float f= 1256.35; char ch[4]; printf(\n1. f : %f,f); memset(ch,'\0',strlen(ch) ); printf(\n2. f : %f,f); return 0; } Expected output is 1. f :

Re: Floating Point Issue

2007-09-27 Thread linux-os \(Dick Johnson\)
If Windows lets you get away with this, then Windows is broken. memset(ch,'\0',strlen(ch) ); 'ch' is uninitialized local data. Nobody knows what evil lurks... Thay said, the kernel will make sure that any data that gets put into your address-space doesn't contain anybody else's information

Re: Floating Point Issue

2007-09-27 Thread Jan Engelhardt
On Sep 27 2007 16:53, linux-os (Dick Johnson) wrote: If Windows lets you get away with this, then Windows is broken. memset(ch,'\0',strlen(ch) ); No, probably just the chance that the memory to which ch points had a nul in it or in the near bytes. Use valgrind, move along. On Thu, 27 Sep

Re: Floating Point Issue

2007-09-27 Thread WANG Cong
On Thu, Sep 27, 2007 at 05:17:44PM +0200, Jan Engelhardt wrote: On Sep 27 2007 12:41, mahamuni ashish wrote: I have small code This is not a kernel problem. (Read your C book and/or ask in a C newsgroup.) Please goto comp.lang.c for help. ;) -- Bill, look, we understand that you're