This is the mail archive of the
cygwin@sourceware.cygnus.com
mailing list for the Cygwin project.
Bug in GCC-2.95 in sscanf for long long?
- To: "cygwin at sourceware dot cygnus dot com" <cygwin at sourceware dot cygnus dot com>
- Subject: Bug in GCC-2.95 in sscanf for long long?
- From: "Ulrich Jakobus" <jakobus at ihf dot uni-stuttgart dot de>
- Date: Mon, 11 Oct 1999 07:56:05 +0200
- Cc: "feko at emss dot co dot za" <feko at emss dot co dot za>, "Isak Theron" <iptheron at emss dot co dot za>
- Reply-To: "Ulrich Jakobus" <jakobus at ihf dot uni-stuttgart dot de>
Hello,
I am using gcc version "2.95 19990728 (release)" under the cygnus
shell version (output of uname -a) "CYGWIN_95-4.0 IHFPCUJ 21.0
(0.8/1/1) 1999-1-16 00:09:28 i586 unknown".
I have problems with the sscanf function processing data of type
long long, the following short code illustrates this:
---------------------------------------
#include <stdio.h>
int main()
{
long long ll;
/* this initialisation will result in a correct output: */
/* ll = 0; */
/* this initialisation will result in an incorrect output */
ll = -9999999999;
sscanf ("123456789", "%lld", &ll);
printf ("%lld\n", ll);
return (0);
}
---------------------------------------
The code as printed above gives the incorrect output
-12761445099
to the screen. However, if the statement
ll = -9999999999;
is replaced by the initialisation
ll = 0;
then the output is correct:
123456789
When ll is not being initialised, then the output is unpredictable.
Executing the same code on a LINUX system with either gcc-2.8.1 or
gcc-2.95.1 results in the correct output in all three cases.
Ulrich
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com