This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Fix compiler warnings throughout


On 08/08/12 12:04, Corinna Vinschen wrote:
> Hi,
> 
> I just applied the below patch.  The idea was to be able to compile
> newlib with gcc options set to -Wall -Werror to better support porting
> to new targets.  So the below patch fixes all problems which showed up
> when running with these options, like uninitialized variables, suggested
> parenthesis and braces, as well as real bug which was only uncovered by
> using these options in freopen.c
> 
> Please have a look if something is broken for your target now.  I don't
> think so, but still...
> 

On arm-eabi this causes:

/work/rearnsha/gnu/trunk/./gcc/xgcc -B/work/rearnsha/gnu/trunk/./gcc/ -nostdinc -B/work/rearnsha/gnu/trunk/arm-eabi/thumb/newlib/ -isystem /work/rearnsha/gnu/trunk/arm-eabi/thumb/newlib/targ-include -isystem /home/rearnsha/gnusrc/gcc-cross/trunk/newlib/libc/include -B/work/rearnsha/gnu/trunk/arm-eabi/thumb/libgloss/arm -L/work/rearnsha/gnu/trunk/arm-eabi/thumb/libgloss/libnosys -L/home/rearnsha/gnusrc/gcc-cross/trunk/libgloss/arm -B/work/rearnsha/gnu/trunk/testinstall/arm-eabi/bin/ -B/work/rearnsha/gnu/trunk/testinstall/arm-eabi/lib/ -isystem /work/rearnsha/gnu/trunk/testinstall/arm-eabi/include -isystem /work/rearnsha/gnu/trunk/testinstall/arm-eabi/sys-include -L/work/rearnsha/gnu/trunk/./ld  -mthumb -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\" -DPACKAGE_VERSION=\"1.20.0\" -DPACKAGE_STRING=\"newlib\ 1.20.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I. -I/home/rearnsha/gnusrc/gcc-cross/trunk/newlib/libc/stdio -DARM_RDI_MONITOR -fno-builtin      -g -O2  -mthumb -fshort-en
ums -DSTRING_ONLY -c /home/rearnsha/gnusrc/gcc-cross/trunk/newlib/libc/stdio/vfwprintf.c -o lib_a-svfwprintf.o
/home/rearnsha/gnusrc/gcc-cross/trunk/newlib/libc/stdio/vfwprintf.c: In function '_svfiwprintf_r':
/home/rearnsha/gnusrc/gcc-cross/trunk/newlib/libc/stdio/vfwprintf.c:643:16: error: 'state' undeclared (first use in this function)
       memset (&state, '\0', sizeof (state));
                ^
This particular instance is not guarded by FLOATING_POINT being defined.

R.

> 
> Corinna
> 
> 
> 	Throughout, run newlib with -Wall -Werror option and fix bugs and
> 	compiler warnings found this way.
> 
> 	* libc/stdio/freopen.c (_freopen_r): Fix bug setting _flags.
> 
> 	* libc/include/stdio.h (_rename): Define when building newlib.
> 	* libc/include/sys/signal.h (_kill): Ditto.
> 	* libc/include/sys/stat.h (_mkdir): Ditto.
> 	* libc/include/sys/time.h (_gettimeofday): Ditto.
> 	* libc/include/sys/times.h (_times): Ditto.
> 	* libc/include/sys/wait.h (_wait): Ditto.
> 	* libc/locale/lmessages.c (empty): Don't define for Cygwin.
> 	* libc/locale/lmonetary.c (cnv): Ditto.
> 	* libc/locale/nl_langinfo.c (nl_langinfo): Ditto for variable s.
> 	* libc/posix/collate.c: Throughout cast to avoid compiler warning.
> 	* libc/posix/engine.c (matcher): Initialize dp to avoid compiler
> 	warning.
> 	* libc/posix/glob.c: Disable on Cygwin.  Explain why.
> 	* libc/posix/regcomp.c: Fix "uninitialized" compiler warnings.
> 	(dissect): Deliberately silence gcc compiler warning.  Add comment to
> 	explain why.
> 	* libc/posix/wordexp.c (wordexp): Remove num_bytes variable since result
> 	is never used.
> 	* libc/posix/popen.c (popen): Ditto for variable last.
> 	* libc/reent/mkdirr.c: Include sys/stat.h.
> 	* libc/reent/renamer.c: Include stdio.h.
> 	* libc/search/hash.c:  Throughout use underscored variants of the stat
> 	function family.
> 	(init_hash): Add missing definition for the __USE_INTERNAL_STAT64 case.
> 	* libc/search/hash_bigkey.c (__big_insert): Add parenthesis to avoid
> 	compiler warning.
> 	* libc/search/hash_page.c (overflow_page): Initalize freep to NULL to
> 	avoid compiler warning.
> 	* libc/stdio/asiprintf.c (_asiprintf_r): Cast unsigned char * to char *
> 	to avoid compiler warning.
> 	(asiprintf): Ditto.
> 	* libc/stdio/asprintf.c (_asprintf_r): Ditto.
> 	(asprintf): Ditto.
> 	* libc/stdio/vasiprintf.c (_vasiprintf_r): Ditto.
> 	* libc/stdio/vasprintf.c (_vasprintf_r): Ditto.
> 	* libc/stdio/mktemp.c (_gettemp): Cast to unsigned char in call to
> 	isdigit to avoid compiler warning.
> 	* libc/stdio/vfprintf.c (_VFPRINTF_R): Initialize variables used for
> 	grouping to avoid compiler warning.  Only define and set nseps and
> 	nrepeats if they are really used.
> 	* libc/stdio/vfwprintf.c (_VFWPRINTF_R): Ditto.  Only define state if
> 	it is really used.
> 	* libc/stdio/vfscanf.c (u_char): Revert to be defined as unsigned char.
> 	(__SVFSCANF_R): Cast fmt in call to __mbtowc.
> 	* libc/stdlib/mbtowc_r.c (JIS_state_table): Disable when building
> 	Cygwin.
> 	(JIS_action_table): Ditto.
> 	* libc/stdlib/wctomb_r.c (__utf8_wctomb): Add parenthesis to avoid
> 	compiler warning.
> 	* libc/string/strcasestr.c: Deliberately silence gcc compiler warning.
> 	Add comment to explain why.
> 	* libc/time/strptime.c (strptime): Cast to unsigned char in calls to
> 	isspace to avoid compiler warning.
> 	* libm/math/e_atan2.c (__ieee754_atan2): Add parenthesis to avoid
> 	compiler warning.
> 	* libm/math/e_exp.c (__ieee754_exp): Initialize k to 0 to avoid
> 	compiler warning.  Drop setting it to 0 later.
> 	* libm/math/ef_exp.c (__ieee754_expf): Ditto.
> 	* libm/math/e_pow.c (__ieee754_pow): Add braces to avoid compiler
> 	warning.
> 	* libm/math/ef_pow.c (__ieee754_powf): Ditto.
> 	* libm/math/er_lgamma.c (__ieee754_lgamma_r): Initialize nadj to 0 to
> 	avoid compiler warning.
> 	* libm/math/erf_lgamma.c (__ieee754_lgammaf_r): Ditto.
> 	* libm/math/e_rem_pio2.c (__ieee754_rem_pio2): Ditto for variable z.
> 	* libm/common/sf_round.c (roundf): Remove signbit variable since result
> 	is never used.
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]