public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jonathan Wakely <jwakely.gcc@gmail.com>
To: gcc-help@gcc.gnu.org
Cc: Axel Freyn <axel-freyn@gmx.de>
Subject: Re: infinite for-loop and related question
Date: Thu, 17 Feb 2011 12:23:00 -0000	[thread overview]
Message-ID: <AANLkTik6nSypFBzBmb+2F=LyujYWjXV=Zy2OzkKZmWry@mail.gmail.com> (raw)
In-Reply-To: <20110217094436.GQ5274@axel>

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?

See 5.2.2 [expr.call] paragraph 7 in the C++ standard.  Arguments to
varargs functions are subject to integral promotions.

  reply	other threads:[~2011-02-17 11:37 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 [this message]
2011-02-17 13:16           ` Axel Freyn
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='AANLkTik6nSypFBzBmb+2F=LyujYWjXV=Zy2OzkKZmWry@mail.gmail.com' \
    --to=jwakely.gcc@gmail.com \
    --cc=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).