Здесь ошибкаКомпилятор ошибок, с 3.0.101 ядра с помощью GCC 4.9
фс/жир/dir.c: В функции 'fat_dir_empty': фс/жир/dir.c: 124: 8: предупреждение : 'де' может быть использована неинициализированными в этой функции [-Wmaybe-неинициализированный] ошибки, запретное предупреждение: dir.c: 124
static inline int fat_get_entry(struct inode *dir, loff_t *pos,
struct buffer_head **bh,
struct msdos_dir_entry **de)
{
/* Fast stuff first */
if (*bh && *de &&
(*de - (struct msdos_dir_entry *)(*bh)->b_data) <
MSDOS_SB(dir->i_sb)->dir_per_block - 1) {
*pos += sizeof(struct msdos_dir_entry);
(*de)++;
return 0;
}
return fat__get_entry(dir, pos, bh, de);
}
(* де) ++; является вопрос
Я не понимаю, 3.4 с тем же кодированием компилируется просто отлично. Любая помощь с этим будет оценена по достоинству.
UPDATE: После прочтения http://lwn.net/Articles/529954/ я бегу с -O3 оптимизации, какие эффекты -Wmaybe-UNINITIALIZED
UPDATE 2: VFAT строит как модуль, без проблем. Только проблема как встроенная. Интересно, почему это было бы?
Вы отправили выдержку из кода, которого нет в 3.0.101, как я вижу. Патч, который его модифицирует, это ** f08b4988f229f ** (fs/fat: исправить все другие проблемы с checkpatch в dir.c). Более того, проблема не в том, что вы упомянули. Прочитайте внимательно, что компилятор вам сообщает. – 0andriy
Да, отредактировано в попытке исправить. (* de) ++; строка 124, на что указывает сообщение об ошибке? Или я ошибаюсь, новичок во всем этом. – Jcfunk
Прикладная фиксация жира: исправление ошибки сборки, https://github.com/torvalds/linux/commit/8c320c079cde0286d71368961231e426539868b4 также fs/fat: исправить все другие проблемы с checkpatch в dir.c, https://github.com/torvalds/linux/commit/f08b4988f229fb41a4995829dc0db34c5e35dfbb – Jcfunk