From: Axel Freyn <axel-freyn@gmx.de>
To: gcc-help@gcc.gnu.org
Subject: Re: infinite for-loop and related question
Date: Thu, 17 Feb 2011 13:16:00 -0000 [thread overview]
Message-ID: <20110217130938.GT5274@axel> (raw)
In-Reply-To: <AANLkTik6nSypFBzBmb+2F=LyujYWjXV=Zy2OzkKZmWry@mail.gmail.com>
On Thu, Feb 17, 2011 at 11:36:53AM +0000, Jonathan Wakely wrote:
> On 17 February 2011 09:44, Axel Freyn <axel-freyn@gmx.de> wrote:
> > On Wed, Feb 16, 2011 at 01:37:03PM -0800, Bob Plantz wrote:
> >> On 02/16/2011 12:41 PM, Jason Mancini wrote:
> >>> Though I still find the output of this odd:
> >>>
> >>> Â Â for (char i(1); i>0; ++i)
> >>> Â Â Â printf("%d %d\n", i, sizeof(i));
> >>>
> >>> ...
> >>> 362195 1
> >>> 362196 1
> >>> 362197 1
> >>> ...
> >>>
> >>> For very large values of char! Â ^_^
> >>>
> >>> Jason
> >> That's odd. With g++ 4.4.5 on an x86-64 machine in 64-bit mode I get:
> >>
> >> ---
> >> 125 1
> >> 126 1
> >> 127 1
> > But there is also a second "bug" in the program. You tell "printf", that
> > the variable "i" is a integer and not a char -- so printf will read
> > sizeof(int) Bytes at the adress of "i" in order to create the
> > output-number, which gives you the 362195. Â You should write something
> > like
> > Â Â Â printf("%d %d\n", (int)i, sizeof(i));
> > in order to get the "true" value of i in the output -- then I would
> > expect values in the "char"-range -127<i<128.
>
> I'm guessing you didn't bother to actually compile that and test it?
Well, I did. But using gcc instead of g++. I get values <128 as soon as
I add the integer conversion (in C code).
> See 5.2.2 [expr.call] paragraph 7 in the C++ standard. Arguments to
> varargs functions are subject to integral promotions.
In C++ it does not make any difference.
Axel
next prev parent reply other threads:[~2011-02-17 13:09 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-16 20:17 Jason Mancini
2011-02-16 20:41 ` Jonathan Wakely
2011-02-16 21:37 ` Jason Mancini
2011-02-16 21:49 ` Bob Plantz
2011-02-16 23:00 ` Jonathan Wakely
2011-02-16 23:22 ` Thomas Martitz
2011-02-17 6:31 ` Jonathan Wakely
2011-02-17 10:36 ` Axel Freyn
2011-02-17 12:23 ` Jonathan Wakely
2011-02-17 13:16 ` Axel Freyn [this message]
2011-02-17 14:08 ` Jonathan Wakely
2011-02-16 23:00 Bill McEnaney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110217130938.GT5274@axel \
--to=axel-freyn@gmx.de \
--cc=gcc-help@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).