Subject: Re: bug#16304: Upcoming clang-3.4 apparently miscompiles coreutils.

From: Andrew Trick <[email-masked]>
Date: Tue, 31 Dec 2013 11:42:59 -0800

On Dec 31, 2013, at 11:39 AM, Markus Trippelsdorf <[email-masked]> wrote:

> On 2013.12.31 at 11:12 -0800, Andrew Trick wrote:
>> 
>> On Dec 30, 2013, at 1:47 PM, Markus Trippelsdorf <[email-masked]> wrote:
>> 
>>> On 2013.12.30 at 18:47 +0000, Pádraig Brady wrote:
>>>> On 12/30/2013 12:32 PM, Markus Trippelsdorf wrote:
>>>>> coreutils-8.22 build with clang-3.4 doesn't copy permissions correctly:
>>>>> 
>>>>> markus@x4 tmp % touch test1
>>>>> markus@x4 tmp % chmod 600 test1
>>>>> markus@x4 tmp % ls -al test1
>>>>> -rw------- 1 markus markus 0 Dec 30 13:25 test1
>>>>> markus@x4 tmp % /var/tmp/coreutils-8.22/src/cp test1 test2
>>>>> markus@x4 tmp % ls -al test2
>>>>> ---------- 1 markus markus 0 Dec 30 13:25 test2
>>>>> markus@x4 tmp %
>>>> 
>>>> Ouch.
>>>> 
>>>> Note as part of the 8.22 release process
>>>> I did verify that `make check` passed with
>>>> clang-3.3-3.fc20.x86_64
>>>> 
>>>> I've again verified that clang-3.3 passes your test above.
>>>> 
>>>> Can you pinpoint the erroneous code?
>>>> It does seem like a clang regression TBH.
>>> 
>>> Started with LLVM r192750 (Enable MI Sched for x86).
>>> I've opened a LLVM bug here:
>>> http://llvm.org/bugs/show_bug.cgi?id=18346
>>> 
>>> (I will try to come up with a testcase after the holidays)
>> 
>> To determine whether a bug exists in MI scheduler pass (or downstream) you can do this:
>> -mllvm -enable-misched=false.
>> 
>> Duncan committed a post-3.4 fix, r197503, for a varargs bug exposed by
>> changes to the SD scheduling policy.
> 
> Yes, r197503 fixes the issue. Would be nice to get the fix applied
> before 3.4 gets released...

Yep, it would be nice. But the fix was considered too late 2 weeks ago, so it’s even less likely now. I don’t think there’s any way to rerun validation at this point. I’m copying Bill who is the authority.

-Andy