Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2012-08-08 15:04:18 +0400
committerCorinna Vinschen <corinna@vinschen.de>2012-08-08 15:04:18 +0400
commit1f232abc8938cc1fe821a6a8504b3845bad89522 (patch)
tree17abe0c1228139fdf4e2ffff34e7f86cfc55d982 /newlib/libc/posix
parent34a4d873ad02e1be335d4cd57db3e60196e24137 (diff)
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.
Diffstat (limited to 'newlib/libc/posix')
-rw-r--r--newlib/libc/posix/collate.c19
-rw-r--r--newlib/libc/posix/engine.c11
-rw-r--r--newlib/libc/posix/glob.c4
-rw-r--r--newlib/libc/posix/popen.c5
-rw-r--r--newlib/libc/posix/regcomp.c14
-rw-r--r--newlib/libc/posix/wordexp.c3
6 files changed, 31 insertions, 25 deletions
diff --git a/newlib/libc/posix/collate.c b/newlib/libc/posix/collate.c
index 6ee455001..8bb04ef0d 100644
--- a/newlib/libc/posix/collate.c
+++ b/newlib/libc/posix/collate.c
@@ -117,24 +117,26 @@ __collate_substitute(s)
const u_char *s;
{
int dest_len, len, nlen;
- int delta = strlen(s);
+ int delta = strlen((const char *) s);
u_char *dest_str = NULL;
if(s == NULL || *s == '\0')
- return __collate_strdup("");
+ return __collate_strdup((u_char *) "");
delta += delta / 8;
- dest_str = malloc(dest_len = delta);
+ dest_str = (u_char *) malloc(dest_len = delta);
if(dest_str == NULL)
__collate_err(EX_OSERR, __FUNCTION__);
len = 0;
while(*s) {
- nlen = len + strlen(__collate_substitute_table[*s]);
+ nlen = len + strlen((const char *)
+ __collate_substitute_table[*s]);
if (dest_len <= nlen) {
dest_str = reallocf(dest_str, dest_len = nlen + delta);
if(dest_str == NULL)
__collate_err(EX_OSERR, __FUNCTION__);
}
- strcpy(dest_str + len, __collate_substitute_table[*s++]);
+ strcpy((char *) dest_str + len,
+ (const char *) __collate_substitute_table[*s++]);
len = nlen;
}
return dest_str;
@@ -150,8 +152,9 @@ __collate_lookup(t, len, prim, sec)
*len = 1;
*prim = *sec = 0;
for(p2 = __collate_chain_pri_table; p2->str[0]; p2++) {
- if(strncmp(t, p2->str, strlen(p2->str)) == 0) {
- *len = strlen(p2->str);
+ if(strncmp((const char *) t, (const char *) p2->str,
+ strlen((const char *) p2->str)) == 0) {
+ *len = strlen((const char *) p2->str);
*prim = p2->prim;
*sec = p2->sec;
return;
@@ -165,7 +168,7 @@ u_char *
__collate_strdup(s)
u_char *s;
{
- u_char *t = strdup(s);
+ u_char *t = (u_char *) strdup((const char *) s);
if (t == NULL)
__collate_err(EX_OSERR, __FUNCTION__);
diff --git a/newlib/libc/posix/engine.c b/newlib/libc/posix/engine.c
index 8494b90a9..5956e2747 100644
--- a/newlib/libc/posix/engine.c
+++ b/newlib/libc/posix/engine.c
@@ -145,7 +145,7 @@ int eflags;
int i;
struct match mv;
struct match *m = &mv;
- char *dp;
+ char *dp = NULL;
const sopno gf = g->firststate+1; /* +1 for OEND */
const sopno gl = g->laststate;
char *start;
@@ -181,8 +181,8 @@ int eflags;
pp = mustlast;
for (dp = start+g->mlen-1; dp < stop;) {
/* Fast skip non-matches */
- while (dp < stop && charjump[*dp])
- dp += charjump[*dp];
+ while (dp < stop && charjump[(unsigned char) *dp])
+ dp += charjump[(unsigned char) *dp];
if (dp >= stop)
break;
@@ -198,7 +198,7 @@ int eflags;
/* Jump to next possible match */
mj = matchjump[pp - mustfirst];
- cj = charjump[*dp];
+ cj = charjump[(unsigned char) *dp];
dp += (cj < mj ? mj : cj);
pp = mustlast;
}
@@ -364,6 +364,9 @@ sopno stopst;
char *ssp; /* start of string matched by subsubRE */
char *sep; /* end of string matched by subsubRE */
char *oldssp; /* previous ssp */
+/* dp is only used for assertion testing which, for some reason, is not
+ recognized as usage. */
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
char *dp;
AT("diss", start, stop, startst, stopst);
diff --git a/newlib/libc/posix/glob.c b/newlib/libc/posix/glob.c
index 4dafe71aa..977a5a4f8 100644
--- a/newlib/libc/posix/glob.c
+++ b/newlib/libc/posix/glob.c
@@ -30,6 +30,10 @@
* SUCH DAMAGE.
*/
+#ifdef __CYGWIN__
+#define _NO_GLOB /* Cygwin provides its own glob. */
+#endif
+
#ifndef _NO_GLOB
#if defined(LIBC_SCCS) && !defined(lint)
diff --git a/newlib/libc/posix/popen.c b/newlib/libc/posix/popen.c
index 38978c7aa..faf72b6e3 100644
--- a/newlib/libc/posix/popen.c
+++ b/newlib/libc/posix/popen.c
@@ -113,7 +113,7 @@ _DEFUN(popen, (program, type),
const char *program _AND
const char *type)
{
- struct pid *cur, *last;
+ struct pid *cur;
FILE *iop;
int pdes[2], pid;
@@ -159,8 +159,7 @@ _DEFUN(popen, (program, type),
(void)close(pdes[1]);
}
/* Close all fd's created by prior popen. */
- for (last = NULL, cur = pidlist; cur;
- last = cur, cur = cur->next)
+ for (cur = pidlist; cur; cur = cur->next)
(void)close (fileno (cur->fp));
execl(_PATH_BSHELL, "sh", "-c", program, NULL);
_exit(127);
diff --git a/newlib/libc/posix/regcomp.c b/newlib/libc/posix/regcomp.c
index 7f9e188a7..bd90d2cdf 100644
--- a/newlib/libc/posix/regcomp.c
+++ b/newlib/libc/posix/regcomp.c
@@ -103,8 +103,8 @@ static void freeset(struct parse *p, cset *cs);
static int freezeset(struct parse *p, cset *cs);
static int firstch(struct parse *p, cset *cs);
static int nch(struct parse *p, cset *cs);
-static void mcadd(struct parse *p, cset *cs, char *cp);
#if used
+static void mcadd(struct parse *p, cset *cs, char *cp);
static void mcsub(cset *cs, char *cp);
static int mcin(cset *cs, char *cp);
static char *mcfind(cset *cs, char *cp);
@@ -308,8 +308,8 @@ struct parse *p;
int stop; /* character this ERE should end at */
{
char c;
- sopno prevback;
- sopno prevfwd;
+ sopno prevback = 0;
+ sopno prevfwd = 0;
sopno conc;
int first = 1; /* is this the first alternative? */
@@ -1333,6 +1333,7 @@ cset *cs;
return(n);
}
+#if used
/*
- mcadd - add a collating element to a cset
== static void mcadd(struct parse *p, cset *cs, \
@@ -1360,7 +1361,6 @@ char *cp;
cs->multis[cs->smultis - 1] = '\0';
}
-#if used
/*
- mcsub - subtract a collating element from a cset
== static void mcsub(cset *cs, char *cp);
@@ -1688,8 +1688,8 @@ struct parse *p;
struct re_guts *g;
{
sop *scan;
- sop *start;
- sop *newstart;
+ sop *start = NULL;
+ sop *newstart = NULL;
sopno newlen;
sop s;
char *cp;
@@ -1961,7 +1961,7 @@ struct re_guts *g;
* is the first one that would be matched).
*/
for (mindex = 0; mindex < g->mlen; mindex++)
- g->charjump[g->must[mindex]] = g->mlen - mindex - 1;
+ g->charjump[(unsigned char) g->must[mindex]] = g->mlen - mindex - 1;
}
/*
diff --git a/newlib/libc/posix/wordexp.c b/newlib/libc/posix/wordexp.c
index b6c4a6d1f..bfdb63fd0 100644
--- a/newlib/libc/posix/wordexp.c
+++ b/newlib/libc/posix/wordexp.c
@@ -37,7 +37,6 @@ wordexp(const char *words, wordexp_t *pwordexp, int flags)
char *iter;
pid_t pid;
int num_words = 0;
- int num_bytes = 0;
int fd[2];
int fd_err[2];
int err = 0;
@@ -129,8 +128,6 @@ wordexp(const char *words, wordexp_t *pwordexp, int flags)
if((iter = strchr(tmp, '\n')))
*iter = '\0';
- num_bytes = atoi(tmp) + pwordexp->we_wordc;
-
/* Get each expansion from the shell output, and store each in
pwordexp's we_wordv vector. */
for(i = 0; i < num_words; i++)