Thanx. I'll give that a try.

Mihael

-----Ursprüngliche Nachricht-----
Von: c400-l-bounces+mihael.schmidt=rossmann.de@xxxxxxxxxxxx [mailto:c400-l-bounces+mihael.schmidt=rossmann.de@xxxxxxxxxxxx] Im Auftrag von Elvis Budimlic
Gesendet: Freitag, 12. Juni 2009 21:59
An: 'C programming iSeries / AS400'
Betreff: Re: [C400-L] Variable argument list error : Operand must bea modifiable value

Just a guess, but va_list is defined in System i's stdarg.h as:

typedef char *va_list[2];

so perhaps you can simply add your own define for va_copy, something like:

#define va_copy(tmp,ap) memcpy(tmp,ap)

Hth, Elvis

Celebrating 11-Years of SQL Performance Excellence on IBM i, i5/OS and
OS/400
www.centerfieldtechnology.com


-----Original Message-----
Subject: [C400-L] Variable argument list error : Operand must be a
modifiable value

Hi again,

I got a problem (hopefully the last one) with a module:

NEOERR *string_appendvf (STRING *str, const char *fmt, va_list ap)
{
NEOERR *err;
char buf[4096];
int bl, size;
va_list tmp;

va_copy(tmp, ap); // <-- this is the line with the error

.
.
.
}

Compile error:

Nachricht . . . : /home/schmidt/clearsilver/util/neo_str.c, 152.3:
CZM0025(30) Operand must be a modifiable lvalue.
Cause . . . . . : A modifiable lvalue is an expression representing an
object that can be changed.
Recovery . . . : Change the operand.


Actually I don't know how to solve this. On Linux it compiled without a
problem.

I am just a C newbie. Perhaps someone can enlighten me!?

Thanx in advance

Mihael Schmidt




This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact [javascript protected email address].