Am 14.12.2012 23:09, schrieb Jeff King: > Can anybody think of a clever way to expose the constant return value of > error() to the compiler? We could do it with a macro, but that is also > out for error(), as we do not assume the compiler has variadic macros. I > guess we could hide it behind "#ifdef __GNUC__", since it is after all > only there to give gcc's analyzer more information. But I'm not sure > there is a way to make a macro that is syntactically identical. I.e., > you cannot just replace "error(...)" in "return error(...);" with a > function call plus a value for the return statement. You'd need > something more like: > > #define RETURN_ERROR(fmt, ...) \ > do { \ > error(fmt, __VA_ARGS__); \ > return -1; \ > } while(0) \ > > which is awfully ugly. Does #define error(fmt, ...) (error_impl(fmt, __VA_ARGS__), -1) cause problems when not used in a return statement? -- Hannes -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html