So, to continue this side thought about uninitialized_var(), it is dangerous because the following buggy pattern does not generate a compiler warning:
long uninitialized_var(error); ... if (error) return error; ... and still there are over 290 uses of uninitialized_var() in the kernel - and any of them could turn into a silent but real uninitialized variable bugs due to subsequent changes. Thanks, Ingo