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

Bug#155835: libc6-dev: scanf a flag conflicts with C99



On 20041220T013000+0900, GOTO Masanori wrote:
> "%as" is GNU extension.  Why don't you want to use "%a" instead of
> "%as"?  Note that C99 defines "%a" as signed floating-point number,
> not modifier flag like l,L.  Or am I missing something?

That is exactly the problem.  In C99 mode %as means %a followed by a
literal s and thus cannot be interpreted as the GNU extension.

(I'm a little puzzled by why GNU allowed the standard committee to
introduce such a nasty incompatibility, but that's neither here nor
there.)

> Note that if you want to select the glibc's definition behavior,
> _D_ISOC99_SOURCE and so on can be used explicitly.  See info libc.

I assume it's a GCC bug that it does not define that when --std=c99 is
used?  If so, feel free to reassign (assuming that defining
_D_ISOC99_SOURCE really does make libc use C99 semantics for %as).

Note that there is no requirement in the C99 standard that
_D_ISOC99_SOURCE be defined in C99 compilation units.
-- 
Antti-Juhani Kaijanaho, Debian developer 

http://kaijanaho.info/antti-juhani/blog/en/debian

Attachment: signature.asc
Description: Digital signature


Reply to: