This is the mail archive of the
mailing list for the newlib project.
Re: help on inconsistent printf() warning from gcc
- From: Joel Sherrill <joel dot sherrill at oarcorp dot com>
- To: Craig Howland <howland at LGSInnovations dot com>, "newlib at sourceware dot org" <newlib at sourceware dot org>
- Date: Fri, 31 Oct 2014 15:21:13 -0500
- Subject: Re: help on inconsistent printf() warning from gcc
- Authentication-results: sourceware.org; auth=none
- References: <5453D9B6 dot 30803 at oarcorp dot com> <5453DF56 dot 2040908 at LGSInnovations dot com> <5453EB55 dot 2000305 at oarcorp dot com>
On 10/31/2014 3:04 PM, Joel Sherrill wrote:
> On 10/31/2014 2:13 PM, Craig Howland wrote:
>> On 10/31/2014 02:49 PM, Joel Sherrill wrote:
>>> I have attached correct and incorrect test cases. I am hoping
>>> someone here can give me a clue as to where to look. I am
>>> wondering if this is an inconsistency across targets in the
>>> C library. I did file this as GCC PR63301 but it was quickly
>>> closed as invalid. But I think the inconsistent generation of
>>> warnings is a bug.
>> Not that this changes the behavior, but the test cases are labeled backwards.
>> After applying the wchar_t-to win_t correction that Myers points out, the
>> correct format is %lc (per C99), while %C is non-standard.
> Thanks. That is much more helpful. Hopefully I can resolve this
> Monday in the code and eliminate another handful of warnings.
> I rather feel stupid. :(
Hmm... I am confused now. Our source is based on FreeBSD hexdump.
This is from conv.c. The printf() is line 137. wc is still a wchar_t in the
current version. They use %C so it must be a BSD-ism.
Any suggestions looking at the original source on how to fix this?
Is adding a cast to wint_t in the printf() at line 137 enough.
I just don't ever do wide character programming. :(
Joel Sherrill, Ph.D. Director of Research & Development
joel.sherrill@OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985