From 3101bc92b3dcd1b06fc246c85f8f6f5d529468ac Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Mon, 29 Jan 2018 19:54:48 +0100 Subject: [PATCH 1/5] Do not print command invocation if QUIET --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4592a40..259ed0e 100644 --- a/Makefile +++ b/Makefile @@ -37,7 +37,7 @@ test: test_format test_dirs test_files test_seek test_truncate test_parallel \ test_alloc test_paths test_orphan test_move test_corrupt test_%: tests/test_%.sh ifdef QUIET - ./$< | sed -n '/^[-=]/p' + @./$< | sed -n '/^[-=]/p' else ./$< endif From 029361ea16a9d55736b184292c86ef88da4e8205 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Mon, 29 Jan 2018 20:53:28 +0100 Subject: [PATCH 2/5] Silence shadow warnings --- emubd/lfs_emubd.c | 2 +- lfs.c | 46 +++++++++++++++++++++++----------------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/emubd/lfs_emubd.c b/emubd/lfs_emubd.c index fb518a8..b159596 100644 --- a/emubd/lfs_emubd.c +++ b/emubd/lfs_emubd.c @@ -190,7 +190,7 @@ int lfs_emubd_erase(const struct lfs_config *cfg, lfs_block_t block) { } if (!err && S_ISREG(st.st_mode) && (S_IWUSR & st.st_mode)) { - int err = unlink(emu->path); + err = unlink(emu->path); if (err) { return -errno; } diff --git a/lfs.c b/lfs.c index 4f75989..08c3d1f 100644 --- a/lfs.c +++ b/lfs.c @@ -481,7 +481,7 @@ static int lfs_dir_commit(lfs_t *lfs, lfs_dir_t *dir, while (newoff < (0x7fffffff & dir->d.size)-4) { if (i < count && regions[i].oldoff == oldoff) { lfs_crc(&crc, regions[i].newdata, regions[i].newlen); - int err = lfs_bd_prog(lfs, dir->pair[0], + err = lfs_bd_prog(lfs, dir->pair[0], newoff, regions[i].newdata, regions[i].newlen); if (err) { if (err == LFS_ERR_CORRUPT) { @@ -495,7 +495,7 @@ static int lfs_dir_commit(lfs_t *lfs, lfs_dir_t *dir, i += 1; } else { uint8_t data; - int err = lfs_bd_read(lfs, oldpair[1], oldoff, &data, 1); + err = lfs_bd_read(lfs, oldpair[1], oldoff, &data, 1); if (err) { return err; } @@ -1005,7 +1005,7 @@ int lfs_dir_seek(lfs_t *lfs, lfs_dir_t *dir, lfs_off_t off) { return LFS_ERR_INVAL; } - int err = lfs_dir_fetch(lfs, dir, dir->d.tail); + err = lfs_dir_fetch(lfs, dir, dir->d.tail); if (err) { return err; } @@ -1116,7 +1116,7 @@ static int lfs_ctz_extend(lfs_t *lfs, if (size != lfs->cfg->block_size) { for (lfs_off_t i = 0; i < size; i++) { uint8_t data; - int err = lfs_cache_read(lfs, rcache, NULL, + err = lfs_cache_read(lfs, rcache, NULL, head, i, &data, 1); if (err) { return err; @@ -1142,7 +1142,7 @@ static int lfs_ctz_extend(lfs_t *lfs, lfs_size_t skips = lfs_ctz(index) + 1; for (lfs_off_t i = 0; i < skips; i++) { - int err = lfs_cache_prog(lfs, pcache, rcache, + err = lfs_cache_prog(lfs, pcache, rcache, nblock, 4*i, &head, 4); if (err) { if (err == LFS_ERR_CORRUPT) { @@ -1450,7 +1450,7 @@ int lfs_file_sync(lfs_t *lfs, lfs_file_t *file) { !lfs_pairisnull(file->pair)) { // update dir entry lfs_dir_t cwd; - int err = lfs_dir_fetch(lfs, &cwd, file->pair); + err = lfs_dir_fetch(lfs, &cwd, file->pair); if (err) { return err; } @@ -1801,7 +1801,7 @@ int lfs_remove(lfs_t *lfs, const char *path) { // must be empty before removal, checking size // without masking top bit checks for any case where // dir is not empty - int err = lfs_dir_fetch(lfs, &dir, entry.d.u.dir); + err = lfs_dir_fetch(lfs, &dir, entry.d.u.dir); if (err) { return err; } else if (dir.d.size != sizeof(dir.d)+4) { @@ -1826,7 +1826,7 @@ int lfs_remove(lfs_t *lfs, const char *path) { cwd.d.tail[0] = dir.d.tail[0]; cwd.d.tail[1] = dir.d.tail[1]; - int err = lfs_dir_commit(lfs, &cwd, NULL, 0); + err = lfs_dir_commit(lfs, &cwd, NULL, 0); if (err) { return err; } @@ -1883,7 +1883,7 @@ int lfs_rename(lfs_t *lfs, const char *oldpath, const char *newpath) { // must be empty before removal, checking size // without masking top bit checks for any case where // dir is not empty - int err = lfs_dir_fetch(lfs, &dir, preventry.d.u.dir); + err = lfs_dir_fetch(lfs, &dir, preventry.d.u.dir); if (err) { return err; } else if (dir.d.size != sizeof(dir.d)+4) { @@ -1910,12 +1910,12 @@ int lfs_rename(lfs_t *lfs, const char *oldpath, const char *newpath) { newentry.d.nlen = strlen(newpath); if (prevexists) { - int err = lfs_dir_update(lfs, &newcwd, &newentry, newpath); + err = lfs_dir_update(lfs, &newcwd, &newentry, newpath); if (err) { return err; } } else { - int err = lfs_dir_append(lfs, &newcwd, &newentry, newpath); + err = lfs_dir_append(lfs, &newcwd, &newentry, newpath); if (err) { return err; } @@ -1943,7 +1943,7 @@ int lfs_rename(lfs_t *lfs, const char *oldpath, const char *newpath) { newcwd.d.tail[0] = dir.d.tail[0]; newcwd.d.tail[1] = dir.d.tail[1]; - int err = lfs_dir_commit(lfs, &newcwd, NULL, 0); + err = lfs_dir_commit(lfs, &newcwd, NULL, 0); if (err) { return err; } @@ -2080,7 +2080,7 @@ int lfs_format(lfs_t *lfs, const struct lfs_config *cfg) { // write both pairs to be safe bool valid = false; for (int i = 0; i < 2; i++) { - int err = lfs_dir_commit(lfs, &superdir, (struct lfs_region[]){ + err = lfs_dir_commit(lfs, &superdir, (struct lfs_region[]){ {sizeof(superdir.d), sizeof(superblock.d), &superblock.d, sizeof(superblock.d)} }, 1); @@ -2125,7 +2125,7 @@ int lfs_mount(lfs_t *lfs, const struct lfs_config *cfg) { } if (!err) { - int err = lfs_bd_read(lfs, dir.pair[0], sizeof(dir.d), + err = lfs_bd_read(lfs, dir.pair[0], sizeof(dir.d), &superblock.d, sizeof(superblock.d)); if (err) { return err; @@ -2182,7 +2182,7 @@ int lfs_traverse(lfs_t *lfs, int (*cb)(void*, lfs_block_t), void *data) { // iterate over contents while (dir.off + sizeof(entry.d) <= (0x7fffffff & dir.d.size)-4) { - int err = lfs_bd_read(lfs, dir.pair[0], dir.off, + err = lfs_bd_read(lfs, dir.pair[0], dir.off, &entry.d, sizeof(entry.d)); if (err) { return err; @@ -2190,7 +2190,7 @@ int lfs_traverse(lfs_t *lfs, int (*cb)(void*, lfs_block_t), void *data) { dir.off += lfs_entry_size(&entry); if ((0x70 & entry.d.type) == (0x70 & LFS_TYPE_REG)) { - int err = lfs_ctz_traverse(lfs, &lfs->rcache, NULL, + err = lfs_ctz_traverse(lfs, &lfs->rcache, NULL, entry.d.u.file.head, entry.d.u.file.size, cb, data); if (err) { return err; @@ -2244,7 +2244,7 @@ static int lfs_pred(lfs_t *lfs, const lfs_block_t dir[2], lfs_dir_t *pdir) { return true; } - int err = lfs_dir_fetch(lfs, pdir, pdir->d.tail); + err = lfs_dir_fetch(lfs, pdir, pdir->d.tail); if (err) { return err; } @@ -2270,7 +2270,7 @@ static int lfs_parent(lfs_t *lfs, const lfs_block_t dir[2], } while (true) { - int err = lfs_dir_next(lfs, parent, entry); + err = lfs_dir_next(lfs, parent, entry); if (err && err != LFS_ERR_NOENT) { return err; } @@ -2304,13 +2304,13 @@ static int lfs_moved(lfs_t *lfs, const void *e) { // iterate over all directory directory entries lfs_entry_t entry; while (!lfs_pairisnull(cwd.d.tail)) { - int err = lfs_dir_fetch(lfs, &cwd, cwd.d.tail); + err = lfs_dir_fetch(lfs, &cwd, cwd.d.tail); if (err) { return err; } while (true) { - int err = lfs_dir_next(lfs, &cwd, &entry); + err = lfs_dir_next(lfs, &cwd, &entry); if (err && err != LFS_ERR_NOENT) { return err; } @@ -2441,7 +2441,7 @@ int lfs_deorphan(lfs_t *lfs) { // check entries for moves lfs_entry_t entry; while (true) { - int err = lfs_dir_next(lfs, &cwd, &entry); + err = lfs_dir_next(lfs, &cwd, &entry); if (err && err != LFS_ERR_NOENT) { return err; } @@ -2460,7 +2460,7 @@ int lfs_deorphan(lfs_t *lfs) { if (moved) { LFS_DEBUG("Found move %d %d", entry.d.u.dir[0], entry.d.u.dir[1]); - int err = lfs_dir_remove(lfs, &cwd, &entry); + err = lfs_dir_remove(lfs, &cwd, &entry); if (err) { return err; } @@ -2468,7 +2468,7 @@ int lfs_deorphan(lfs_t *lfs) { LFS_DEBUG("Found partial move %d %d", entry.d.u.dir[0], entry.d.u.dir[1]); entry.d.type &= ~0x80; - int err = lfs_dir_update(lfs, &cwd, &entry, NULL); + err = lfs_dir_update(lfs, &cwd, &entry, NULL); if (err) { return err; } From 6d557551288a73e2cf4a2411515338d4a21d1ef7 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Tue, 30 Jan 2018 14:59:25 +0100 Subject: [PATCH 3/5] tests: Silence warnings in template MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - no previous prototype for ‘test_assert’ - no previous prototype for ‘test_count’ - unused parameter ‘b’ in test_count - function declaration isn’t a prototype for main --- tests/template.fmt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/template.fmt b/tests/template.fmt index 4511e6d..209a714 100644 --- a/tests/template.fmt +++ b/tests/template.fmt @@ -7,11 +7,11 @@ // test stuff -void test_log(const char *s, uintmax_t v) {{ +static void test_log(const char *s, uintmax_t v) {{ printf("%s: %jd\n", s, v); }} -void test_assert(const char *file, unsigned line, +static void test_assert(const char *file, unsigned line, const char *s, uintmax_t v, uintmax_t e) {{ static const char *last[6] = {{0, 0}}; if (v != e || !(last[0] == s || last[1] == s || @@ -37,7 +37,8 @@ void test_assert(const char *file, unsigned line, // utility functions for traversals -int test_count(void *p, lfs_block_t b) {{ +static int __attribute__((used)) test_count(void *p, + lfs_block_t b __attribute__((unused))) {{ unsigned *u = (unsigned*)p; *u += 1; return 0; @@ -96,7 +97,7 @@ const struct lfs_config cfg = {{ // Entry point -int main() {{ +int main(void) {{ lfs_emubd_create(&cfg, "blocks"); {tests} From aa50e03684804c26daed5e6490544ac2299cf0fc Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Tue, 30 Jan 2018 20:07:37 +0100 Subject: [PATCH 4/5] Commentary typo fix --- lfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lfs.c b/lfs.c index 08c3d1f..aa9faa7 100644 --- a/lfs.c +++ b/lfs.c @@ -1737,7 +1737,7 @@ lfs_soff_t lfs_file_size(lfs_t *lfs, lfs_file_t *file) { } -/// General fs oprations /// +/// General fs operations /// int lfs_stat(lfs_t *lfs, const char *path, struct lfs_info *info) { // check for root, can only be something like '/././../.' if (strspn(path, "/.") == strlen(path)) { From dc513b172f8f79dbe0c8c13f5f91d4d9ab182ee3 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Sun, 4 Feb 2018 13:10:07 -0600 Subject: [PATCH 5/5] Silenced more of aldot's warnings Flags used: -Wall -Wextra -Wshadow -Wwrite-strings -Wundef -Wstrict-prototypes -Wunused -Wunused-parameter -Wunused-function -Wunused-value -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition --- lfs.c | 10 +++++++--- tests/template.fmt | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lfs.c b/lfs.c index aa9faa7..514a85b 100644 --- a/lfs.c +++ b/lfs.c @@ -1016,6 +1016,7 @@ int lfs_dir_seek(lfs_t *lfs, lfs_dir_t *dir, lfs_off_t off) { } lfs_soff_t lfs_dir_tell(lfs_t *lfs, lfs_dir_t *dir) { + (void)lfs; return dir->pos; } @@ -1669,7 +1670,8 @@ int lfs_file_truncate(lfs_t *lfs, lfs_file_t *file, lfs_off_t size) { return LFS_ERR_INVAL; } - if (size < lfs_file_size(lfs, file)) { + lfs_off_t oldsize = lfs_file_size(lfs, file); + if (size < oldsize) { // need to flush since directly changing metadata int err = lfs_file_flush(lfs, file); if (err) { @@ -1686,11 +1688,11 @@ int lfs_file_truncate(lfs_t *lfs, lfs_file_t *file, lfs_off_t size) { file->size = size; file->flags |= LFS_F_DIRTY; - } else if (size > lfs_file_size(lfs, file)) { + } else if (size > oldsize) { lfs_off_t pos = file->pos; // flush+seek if not already at end - if (file->pos != lfs_file_size(lfs, file)) { + if (file->pos != oldsize) { int err = lfs_file_seek(lfs, file, 0, SEEK_END); if (err) { return err; @@ -1716,6 +1718,7 @@ int lfs_file_truncate(lfs_t *lfs, lfs_file_t *file, lfs_off_t size) { } lfs_soff_t lfs_file_tell(lfs_t *lfs, lfs_file_t *file) { + (void)lfs; return file->pos; } @@ -1729,6 +1732,7 @@ int lfs_file_rewind(lfs_t *lfs, lfs_file_t *file) { } lfs_soff_t lfs_file_size(lfs_t *lfs, lfs_file_t *file) { + (void)lfs; if (file->flags & LFS_F_WRITING) { return lfs_max(file->pos, file->size); } else { diff --git a/tests/template.fmt b/tests/template.fmt index 209a714..a53f0c7 100644 --- a/tests/template.fmt +++ b/tests/template.fmt @@ -37,8 +37,8 @@ static void test_assert(const char *file, unsigned line, // utility functions for traversals -static int __attribute__((used)) test_count(void *p, - lfs_block_t b __attribute__((unused))) {{ +static int __attribute__((used)) test_count(void *p, lfs_block_t b) {{ + (void)b; unsigned *u = (unsigned*)p; *u += 1; return 0;