Andreas Schwab <schwab@xxxxxxxxxxxxxx> writes: > On Sep 20 2017, Jonathan Nieder <jrnieder@xxxxxxxxx> wrote: > >> Andreas Schwab wrote: >>> On Sep 19 2017, Jonathan Nieder <jrnieder@xxxxxxxxx> wrote: >> >>>> B. #define for_each_string_list_item(item, list) \ >>>> if (list->items) \ >>>> for (item = ...; ...; ... ) >>>> >>>> This breaks a caller like >>>> if (foo) >>>> for_each_string_list_item(item, list) >>>> ... >>>> else >>>> ... >>>> >>>> making it a non-starter. >>> >>> That can be fixed with a dangling else. >> >> I believe the fix you're referring to is option C, from the same email >> you are replying to. If not, please correct me. > > A variant thereof, yes. Now you make me curious. How would that variant be different from option C. in Jonathan's message? Perhaps that different version may be a solution to work around the potential issue mentioned in the description of option C.?