NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: standards/47119: putc_unlocked(3) is found even with -std=c89
The following reply was made to PR standards/47119; it has been noted by GNATS.
From: Steffen "Daode" Nurpmeso <sdaoden%gmail.com@localhost>
To: Martin Husemann <martin%duskware.de@localhost>
Cc: gnats-bugs%NetBSD.org@localhost
Subject: Re: standards/47119: putc_unlocked(3) is found even with -std=c89
Date: Wed, 24 Oct 2012 16:05:07 +0200
Martin Husemann <martin%duskware.de@localhost> wrote:
|On Wed, Oct 24, 2012 at 03:11:03PM +0200, Steffen Daode Nurpmeso wrote:
|> Because it is not part of C89/C99?
|
|You are misunderstanding the compiler option - it has no influence on the
|symbols visible in libraries nor system headers (at least in general).
|There are a few defines you can add via -D to make the headers pollute less
Hmm. I think you're right.
Well i'm not really working with those headers, and i still see
a '#define _GNU_SOURCE' on top of the one that's really important
for me.
|namespace, but since this is a posix blessed function, it is better
|to avoid a name clash in application code.
|Martin
Yes, a lot of conditions and a lot of what standards produce most
of the time, so thanks for all those work on standard compliance.
Nonetheless - the bug is triggered only with -std=c89, and only on
NetBSD 6.0. And in the meanwhile i've found it.
In fact it has nothing to do with putc_unlocked() (i was so clumsy
that i even tried to compile with -pthread and -D_REENTRANT, and
it was still expanded to __sputc() or so - amazing!), but it is in
fact alloca(3) that returns an invalid buffer:
%fwrite_td() calls ac_alloc for 29
fwrite_td() calls memcpy (From: <XXXXXXXXXXX%YYYY.com@localhost>
)29
fwrite_td() before delctrl (^])29
fwrite_td() calls prefixwrite (^])29
*29 (0xbfbf9254)()*^@^@^@^@^@^@^@^@XXXXXXXXXX%YYYY.com@localhost>
From the alloca(3) manual i see nothing special to adhere to,
i would not describe 29 bytes as a "large unbounded allocation".
The CFLAGS are simply '-std=c89 -O2', so nothing special at all.
I think this is worth another PR?
--steffen
Home |
Main Index |
Thread Index |
Old Index