On 02.02.2016 19:53, Markus Armbruster wrote:
> Lluís Vilanova <vilan...@ac.upc.edu> writes:
...

>> diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h
>> index 7ab2355..6c2f142 100644
>> --- a/include/qemu/error-report.h
>> +++ b/include/qemu/error-report.h
>> @@ -43,4 +43,23 @@ void error_report(const char *fmt, ...) GCC_FMT_ATTR(1, 
>> 2);
>>  const char *error_get_progname(void);
>>  extern bool enable_timestamp_msg;
>>  
>> +/* Report message and exit with error */
>> +void QEMU_NORETURN error_vreport_fatal(const char *fmt, va_list ap) 
>> GCC_FMT_ATTR(1, 0);
>> +void QEMU_NORETURN error_report_fatal(const char *fmt, ...) GCC_FMT_ATTR(1, 
>> 2);
> 
> This lets people write things like
> 
>     error_report_fatal("The sky is falling");
> 
> instead of
> 
>     error_report("The sky is falling");
>     exit(1);
> 
> or
> 
>     fprintf(stderr, "The sky is falling\n");
>     exit(1);
> 
> I don't think that's an improvement in clarity.

The problem is not the existing code, but that in a couple of new
patches, I've now already seen that people are trying to use

     error_setg(&error_fatal, ... );

to do error reporting - which is IMHO the most ugliest way to do this,
because I'd really not expect error_setg() to (always) exit QEMU when I
quickly read through the sources.
We fortunately do not have that in the sources yet (only some few spots
with error_abort), but to prevent that people start using that, it would
be good to have a error_report_fatal() function instead, I think.

Alternatively, if you really want to see the exit(1) in the sources, I
think this should be mentioned in the coding guidelines ... or are you
fine with error_setg(&error_fatal, ...), Markus?

 Thomas


Reply via email to