On Thursday 21 May 2015 10:56:34 Geert Uytterhoeven wrote:
- value using
- user_semid_ds.sem_otime = kernel_semid64_ds.sem_otime +
(long long)(kernel_semid64_ds.sem_otime_high << 32)
The cast to "long long" should be inside the parentheses, to promote the (32-bit) sem_otime_high to a first 64-bit integer first. Else it will be shifted into oblivion (oh no, C undefined behavior).
Fixed now to say
* user_semid_ds.sem_otime = kernel_semid64_ds.sem_otime + * ((long long)kernel_semid64_ds.sem_otime_high << 32)
Thanks!
Arnd