From 4e646b0ddb81e1fbf1159ad66a41de848fe93930 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 16 Apr 2009 12:03:17 +0000 Subject: [PATCH] * Fix a few "comparison is always false/true due to limited range of data type" warnings on 64-bit platforms. The one in parser.y is likely to be a real bug. --- src/libexpr/parser.y | 2 +- src/libstore/local-store.cc | 2 +- src/libutil/archive.cc | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y index 7bafd89d8..05ba52e68 100644 --- a/src/libexpr/parser.y +++ b/src/libexpr/parser.y @@ -147,7 +147,7 @@ static Expr stripIndentation(ATermList es) /* Remove the last line if it is empty and consists only of spaces. */ if (n == 1) { - unsigned int p = s2.find_last_of('\n'); + string::size_type p = s2.find_last_of('\n'); if (p != string::npos && s2.find_first_not_of(' ', p + 1) == string::npos) s2 = string(s2, 0, p + 1); } diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index 9f9c378c6..205ee3c25 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -393,7 +393,7 @@ ValidPathInfo LocalStore::queryPathInfo(const Path & path, bool ignoreErrors) Strings lines = tokenizeString(info, "\n"); for (Strings::iterator i = lines.begin(); i != lines.end(); ++i) { - unsigned int p = i->find(':'); + string::size_type p = i->find(':'); if (p == string::npos) continue; /* bad line */ string name(*i, 0, p); string value(*i, p + 2); diff --git a/src/libutil/archive.cc b/src/libutil/archive.cc index 3142aa929..8f100da4c 100644 --- a/src/libutil/archive.cc +++ b/src/libutil/archive.cc @@ -50,7 +50,7 @@ static void dumpEntries(const Path & path, Sink & sink, PathFilter & filter) } -static void dumpContents(const Path & path, off_t size, +static void dumpContents(const Path & path, size_t size, Sink & sink) { writeString("contents", sink); @@ -60,7 +60,7 @@ static void dumpContents(const Path & path, off_t size, if (fd == -1) throw SysError(format("opening file `%1%'") % path); unsigned char buf[65536]; - off_t left = size; + size_t left = size; while (left > 0) { size_t n = left > sizeof(buf) ? sizeof(buf) : left; @@ -88,7 +88,7 @@ static void dump(const Path & path, Sink & sink, PathFilter & filter) writeString("executable", sink); writeString("", sink); } - dumpContents(path, st.st_size, sink); + dumpContents(path, (size_t) st.st_size, sink); } else if (S_ISDIR(st.st_mode)) {