]> sourceware.org Git - glibc.git/commit
gcc PR 89877: miscompilation due to missing cc clobber in longlong.h macros
authorVineet Gupta <vgupta@synopsys.com>
Thu, 28 Mar 2019 22:24:35 +0000 (15:24 -0700)
committerVineet Gupta <vgupta@synopsys.com>
Wed, 11 Mar 2020 01:57:28 +0000 (18:57 -0700)
commita9f4703d9341507b5a25924de1410df5bf260adc
tree103c55456f475fd9557557c9aca64d7323badb8a
parentd8faf2955aeea873fb6878f888dce4632bc4ba5c
gcc PR 89877: miscompilation due to missing cc clobber in longlong.h macros

simple test such as below was failing.

| void main(int argc, char *argv[])
| {
|    size_t total_time = 115424;                       // expected 115.424
|    double secs = (double)total_time/(double)1000;
|    printf("%s %d %lf\n", "secs", total_time, secs);  // prints 113.504
|    printf("%d\n", (size_t)secs);
| }

The printf eventually called into glibc stdlib/divrem.c:__mpn_divrem()
which uses the __arc__ specific inline asm macros from longlong.h which
were causing miscompilation.

include/
2019-03-28  Vineet Gupta <vgupta@synopsys.com>

PR 89877

* longlong.h [__arc__] (add_ssaaaa): Add cc clobber
(sub_ddmmss): Likewise.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
stdlib/longlong.h
This page took 0.041612 seconds and 5 git commands to generate.