News for hackers. Stuff that matters.
Re:Compilers are hard by drivebycomment on Thursday January 21, 2021 @12:40AM (#25855845)
Not that surprising given that it seems specific to asan mode and only in the presence of setjmp/longjmp. I.e. this cant be that important unless the same bug shows also in non-asan Setjmp/longjmp case. Setjmp/longjmp are often a source of trouble for the register allocator or related optimization due to its unique properties. Often the optimizing compilers treat set/longjmp as "give up almost everything around those functions" but maybe llvm is trying hard to model it precisely and failing. But I haven't personally looked at the relevant code in llvm so this is mostly a speculation.
Re:Compilers are hard by cperciva on Thursday January 21, 2021 @12:46AM (#25855900)
The bug shows up without asan. We literally tripped over it in production with code compiled with "clang -O2".
Re:Compilers are hard by drivebycomment on Thursday January 21, 2021 @12:53AM (#25855939)
Then I agree that this is surprising. That means clang/llvm is not modeling set/longjmp correctly in general and that is not acceptable as a C compiler.
Re:Compilers are hard by scatters on Thursday January 21, 2021 @03:51AM (#25856861)
That's apparent from your ticket (which is marked as a duplicate) but on the one you linked to, all the offending compiler lines contain asan. Is there a chance this is impacting prioritization?
Re:Compilers are hard by cperciva on Thursday January 21, 2021 @11:27AM (#25860641)
Could be. I'm not an LLVM developer so I don't know how they prioritize issues.
Re:Compilers are hard by h_anna_h on Thursday January 21, 2021 @12:44AM (#25855880)
Regarding asan bugs, if you do not free all of your memory before exiting main it will complain about stuff and end up calling _exit I think which does not flush the buffers.