[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Using stpcpy

From: Eli Zaretskii
Subject: Re: Using stpcpy
Date: Sat, 27 Dec 2014 21:52:20 +0200

> From: cg <address@hidden>
> Date: Sat, 27 Dec 2014 19:57:07 +0800
> On 12/27/2014 3:45 PM, Eli Zaretskii wrote:
> >
> > Sorry, I don't understand this: there's no call to stpcpy on line 350
> > of ntlib.c, or anywhere else in ntlib.c, actually.  That line calls
> >
> Yes, I was confused by the error message too, and found ntlib.c
> didin't use stpcpy at all. It looks like it has something to do with
> compiler optimization.
> So I tried to use different optimization flags, and this error only
> happens when -O2 or -Ofast is used as CFLAGS:
> ./autogen.sh
> export CFLASG=-O0 # no error
> #export CFLASG=-O1 # no error
> #export CFLASG=-O2 # error!
> #export CFLASG=-Ofast # error!
> ./confgure
> make
> I am using msys2.

Incredible as it sounds, in an optimized build, GCC (sometimes?) calls
stpcpy even though the source calls strcpy, provided that the
prototype of stpcpy is in scope.  In this case, ntlib.c includes
windows.h, which includes string.h, which comes from lib/string.h,
which declares the prototype of stpcpy, and that is enough to trigger
this misfeature.

I fixed this by switching the order of the libraries, as suggested,
but only because doing so is TRT in general.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]