From a03e335b86a44285c38514be2f2be9883ea7d294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 7 Apr 2021 17:31:34 +0200 Subject: timedatectl: rework handling of conditions in print_status_info() gcc-11.0.1-0.3.fc34.x86_64 was complaining that n might be unset with --optimization=1. It was wrong, but let's rework the code to make it obvious that it is always set. --- src/timedate/timedatectl.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) (limited to 'src/timedate') diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c index fb08f9ad26..4cab8acbd9 100644 --- a/src/timedate/timedatectl.c +++ b/src/timedate/timedatectl.c @@ -96,21 +96,17 @@ static int print_status_info(const StatusInfo *i) { } else log_warning("Could not get time from timedated and not operating locally, ignoring."); - if (have_time) - n = strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S %Z", localtime_r(&sec, &tm)); - + n = have_time ? strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S %Z", localtime_r(&sec, &tm)) : 0; r = table_add_many(table, TABLE_STRING, "Local time:", - TABLE_STRING, have_time && n > 0 ? a : "n/a"); + TABLE_STRING, n > 0 ? a : "n/a"); if (r < 0) return table_log_add_error(r); - if (have_time) - n = strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S UTC", gmtime_r(&sec, &tm)); - + n = have_time ? strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S UTC", gmtime_r(&sec, &tm)) : 0; r = table_add_many(table, TABLE_STRING, "Universal time:", - TABLE_STRING, have_time && n > 0 ? a : "n/a"); + TABLE_STRING, n > 0 ? a : "n/a"); if (r < 0) return table_log_add_error(r); @@ -119,26 +115,23 @@ static int print_status_info(const StatusInfo *i) { rtc_sec = (time_t) (i->rtc_time / USEC_PER_SEC); n = strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S", gmtime_r(&rtc_sec, &tm)); - } - + } else + n = 0; r = table_add_many(table, TABLE_STRING, "RTC time:", - TABLE_STRING, i->rtc_time > 0 && n > 0 ? a : "n/a"); + TABLE_STRING, n > 0 ? a : "n/a"); if (r < 0) return table_log_add_error(r); - if (have_time) - n = strftime(a, sizeof a, "%Z, %z", localtime_r(&sec, &tm)); - r = table_add_cell(table, NULL, TABLE_STRING, "Time zone:"); if (r < 0) return table_log_add_error(r); - r = table_add_cell_stringf(table, NULL, "%s (%s)", strna(i->timezone), have_time && n > 0 ? a : "n/a"); + n = have_time ? strftime(a, sizeof a, "%Z, %z", localtime_r(&sec, &tm)) : 0; + r = table_add_cell_stringf(table, NULL, "%s (%s)", strna(i->timezone), n > 0 ? a : "n/a"); if (r < 0) return table_log_add_error(r); - /* Restore the $TZ */ r = set_unset_env("TZ", old_tz, true); if (r < 0) -- cgit v1.2.1