[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [PATCH v2 1/2] Use error_fatal to simplify obvious fatal
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-arm] [PATCH v2 1/2] Use error_fatal to simplify obvious fatal errors |
Date: |
Mon, 14 Dec 2015 14:55:37 -0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Thu, Dec 10, 2015 at 05:29:14PM +0100, Markus Armbruster wrote:
> Done with this admittedly crude Coccinelle semantic patch:
>
Reviewed-by: Eduardo Habkost <address@hidden>
You can rewrite the semantic patch as:
@@
type T;
identifier FUN, RET;
expression list ARGS;
expression ERR, EC;
@@
(
- T RET = FUN(ARGS, &ERR);
+ T RET = FUN(ARGS, &error_fatal);
|
- RET = FUN(ARGS, &ERR);
+ RET = FUN(ARGS, &error_fatal);
|
- FUN(ARGS, &ERR);
+ FUN(ARGS, &error_fatal);
)
- if (ERR != NULL) {
- error_report_err(ERR);
- exit(EC);
- }
Coccinelle seems to have some magic to make "LIST," also match
with an empty list.
> @@
> identifier FUN;
> expression ERR, EC;
> @@
> - FUN(&ERR);
> - if (ERR != NULL) {
> - error_report_err(ERR);
> - exit(EC);
> - }
> + FUN(&error_fatal);
> @@
> identifier FUN;
> expression ARG1, ERR, EC;
> @@
> - FUN(ARG1, &ERR);
> - if (ERR != NULL) {
> - error_report_err(ERR);
> - exit(EC);
> - }
> + FUN(ARG1, &error_fatal);
> @@
> identifier FUN;
> expression ARG1, ARG2, ERR, EC;
> @@
> - FUN(ARG1, ARG2, &ERR);
> - if (ERR != NULL) {
> - error_report_err(ERR);
> - exit(EC);
> - }
> + FUN(ARG1, ARG2, &error_fatal);
> @@
> identifier FUN;
> expression ARG1, ARG2, ARG3, ERR, EC;
> @@
> - FUN(ARG1, ARG2, ARG3, &ERR);
> - if (ERR != NULL) {
> - error_report_err(ERR);
> - exit(EC);
> - }
> + FUN(ARG1, ARG2, ARG3, &error_fatal);
> @@
> identifier FUN;
> expression RET, ERR, EC;
> @@
> - RET = FUN(&ERR);
> - if (ERR != NULL) {
> - error_report_err(ERR);
> - exit(EC);
> - }
> + RET = FUN(&error_fatal);
> @@
> identifier FUN;
> expression RET, ARG1, ERR, EC;
> @@
> - RET = FUN(ARG1, &ERR);
> - if (ERR != NULL) {
> - error_report_err(ERR);
> - exit(EC);
> - }
> + RET = FUN(ARG1, &error_fatal);
> @@
> identifier FUN;
> expression RET, ARG1, ARG2, ERR, EC;
> @@
> - RET = FUN(ARG1, ARG2, &ERR);
> - if (ERR != NULL) {
> - error_report_err(ERR);
> - exit(EC);
> - }
> + RET = FUN(ARG1, ARG2, &error_fatal);
> @@
> identifier FUN;
> expression RET, ARG1, ARG2, ARG3, ERR, EC;
> @@
> - RET = FUN(ARG1, ARG2, ARG3, &ERR);
> - if (ERR != NULL) {
> - error_report_err(ERR);
> - exit(EC);
> - }
> + RET = FUN(ARG1, ARG2, ARG3, &error_fatal);
> @@
> type T;
> identifier FUN, RET;
> expression ERR, EC;
> @@
> - T RET = FUN(&ERR);
> - if (ERR != NULL) {
> - error_report_err(ERR);
> - exit(EC);
> - }
> + T RET = FUN(&error_fatal);
> @@
> type T;
> identifier FUN, RET;
> expression ARG1, ERR, EC;
> @@
> - T RET = FUN(ARG1, &ERR);
> - if (ERR != NULL) {
> - error_report_err(ERR);
> - exit(EC);
> - }
> + T RET = FUN(ARG1, &error_fatal);
> @@
> type T;
> identifier FUN, RET;
> expression ARG1, ARG2, ERR, EC;
> @@
> - T RET = FUN(ARG1, ARG2, &ERR);
> - if (ERR != NULL) {
> - error_report_err(ERR);
> - exit(EC);
> - }
> + T RET = FUN(ARG1, ARG2, &error_fatal);
> @@
> type T;
> identifier FUN, RET;
> expression ARG1, ARG2, ARG3, ERR, EC;
> @@
> - T RET = FUN(ARG1, ARG2, ARG3, &ERR);
> - if (ERR != NULL) {
> - error_report_err(ERR);
> - exit(EC);
> - }
> + T RET = FUN(ARG1, ARG2, ARG3, &error_fatal);
>
> This leaves dead Error * variables behind, cleaned up manually.
>
--
Eduardo