| delorie.com/archives/browse.cgi | search |
| X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f |
| Received-SPF: | None; receiver=nym.alias.net; client-ip=213.250.81.164; |
| envelope-from=<aw AT aw DOT gs>; helo=mariah.narpes.com | |
| Date: | Tue, 16 May 2006 02:54:48 +0000 (GMT) |
| From: | "A. Wik" <aw AT aw DOT gs> |
| Subject: | Re: error: invalid lvalue in increment |
| In-Reply-To: | <e4b5he$1b14$1@defiant.vmunix.org> |
| Message-ID: | <20060516022841.L2491@dynamite.narpes.com> |
| References: | <44670d4b$0$3880$91cee783 AT newsreader01 DOT highway DOT telekom DOT at> |
| <e4b5he$1b14$1 AT defiant DOT vmunix DOT org> | |
| MIME-Version: | 1.0 |
| Newsgroups: | comp.os.msdos.djgpp |
| Organization: | none |
| Mail-To-News-Contact: | postmaster AT nym DOT alias DOT net |
| Lines: | 86 |
| To: | djgpp AT delorie DOT com |
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
| Reply-To: | djgpp AT delorie DOT com |
| Errors-To: | nobody AT delorie DOT com |
| X-Mailing-List: | djgpp AT delorie DOT com |
| X-Unsubscribes-To: | listserv AT delorie DOT com |
The trick is not to cast the variable itself,
but its address. This compiles without as
much as a warning:
main()
{
unsigned char c;
*(long long*)&c = 123456;
return 0;
}
People in love with the sound of their
typing ("strong typing"?) would probably
use "int main(void)".
-aw
On Mon, 15 May 2006, Rod Pemberton wrote:
>
> "Florian Xaver" <wosrediinanatour AT aon DOT at> wrote in message
> news:44670d4b$0$3880$91cee783 AT newsreader01 DOT highway DOT telekom DOT at...
> > What is wrong?
> >
> > ...
> > (l_text)d += 1;
> > *d = GetKey(App) & 0xFF;
> > ...
> >
>
> The behavior was deprecated. You can no longer cast lvalues in GCC.
>
> You might unrolling the assignment, so the cast is an rvalue, like one of
> these:
>
> d=(pointertypeofd *)((l_text)d+1);
>
> d=(typeofd)((l_text)d+1);
>
> where "pointertypeofd" or "typeofd" is the proper cast needed for the
> declared type of d...
>
>
> >From "GCC 3.4 Release Series Changes, New Features, and Fixes",
> "The cast-as-lvalue extension has been removed for C++ and deprecated for C
> and Objective-C. In particular, code like this:
> int i;
> (char) i = 5;
>
> or this:
>
> char *p;
> ((int *) p)++;
>
> is no longer accepted for C++ and will not be accepted for C and Objective-C
> in a future version."
>
>
> Rod Pemberton
>
>
>
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |