This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: va_list and x86_64 possible bug (?)
On 10/17/07, Andrew Haley <aph@redhat.com> wrote:
> Macy Gasp writes:
> > On 10/17/07, Macy Gasp <macygasp@gmail.com> wrote:
> > > On 10/17/07, Andrew Haley <aph-gcc@littlepinkcloud.com> wrote:
> > > > Macy Gasp writes:
> > > > > Hi everybody,
> > > >
> > > > Read the Fine Manual:
> > > >
> > > >
> > > > int vsprintf(char *str, const char *format, va_list ap);
> > > >
> > > > The functions vprintf(), vfprintf(), vsprintf(), vsnprintf()
> > > > are equivalent to the functions printf(), fprintf(), sprintf(),
> > > > snprintf(), respectively, except that they are called with a
> > > > va_list instead of a variable number of arguments. These
> > > > functions do not call the va_end macro. C onsequently, the value
> > > > of ap is undefined after the call. The application should call
> > > > va_end(ap) itself afterwards.
> > > >
> > > >
> > > > Andrew.
> > > >
> > >
> > > Thanks for the answer, I missed that part :( .
> > > Thanks to the other Andrew too , for his answer :)
> > >
> >
> > By the way, I need a suggestion... I want to write a "format_string"
> > function in C++, like this:
> >
> > std::string format_string(const char* format, va_list args);
> >
> > This has an internal static buffer in which I try 1st to vsnprintf().
> > If it overflows, I dynamically allocate a suitable buffer and try
> > vsnprintf again.
> >
> > The problem is that I'd need to va_copy the args variable in order to
> > re-use it for the second vsnprintf; but this isn't portable on Windows
> > using cl (probably other platforms too)...
> >
> > Any ideas on how I could solve this?
>
> Why are you ignoring my request:
>
> This is not appropriate for the gcc list, which is for gcc developers.
> Please ask such questions on gcc-help@gcc.gnu.org.
>
> Do you expect people to help you if you behave like this?
I'm terribly sorry, I haven't seen that...
Switching mailing list...
My apologies.