time/timekeeping: Work around false positive GCC warning
authorIngo Molnar <mingo@kernel.org>
Tue, 8 Mar 2016 10:09:53 +0000 (11:09 +0100)
committerIngo Molnar <mingo@kernel.org>
Tue, 8 Mar 2016 10:09:53 +0000 (11:09 +0100)
commit6436257b491cc0d456c39330dfc22126148d5ed7
tree4e3f4a1da9f88e429c95b7ea5661390fc611e836
parent69365272332a5cbef778c97b2337b4f79c509293
time/timekeeping: Work around false positive GCC warning

Newer GCC versions trigger the following warning:

  kernel/time/timekeeping.c: In function ‘get_device_system_crosststamp’:
  kernel/time/timekeeping.c:987:5: warning: ‘clock_was_set_seq’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    if (discontinuity) {
     ^
  kernel/time/timekeeping.c:1045:15: note: ‘clock_was_set_seq’ was declared here
    unsigned int clock_was_set_seq;
                 ^

GCC clearly is unable to recognize that the 'do_interp' boolean tracks
the initialization status of 'clock_was_set_seq'.

The GCC version used was:

  gcc version 5.3.1 20151207 (Red Hat 5.3.1-2) (GCC)

Work it around by initializing clock_was_set_seq to 0. Compilers that
are able to recognize the code flow will eliminate the unnecessary
initialization.

Acked-by: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/time/timekeeping.c