public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
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

  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).