Re: clang 3.2 RC2 miscompiles libgcc?

From: Nathan Whitehorn <nwhitehorn_at_freebsd.org>
Date: Sun, 06 Jan 2013 11:39:35 -0500
On 01/06/13 10:29, Nathan Whitehorn wrote:
> On 01/06/13 09:59, Dimitry Andric wrote:
>> On 2013-01-06 15:17, Stefan Farfeleder wrote:
>>> On Fri, Jan 04, 2013 at 04:49:41PM +0100, Stefan Farfeleder wrote:
>>>> Here's a minimal test case that reproduces the bug:
>>> [...]
>>>
>>> Until someone fixes this bug, could we apply something like this as a
>>> work-around?
>>>
>>> Stefan
>>>
>>> Index: gnu/lib/libgcc/Makefile
>>> ===================================================================
>>> --- gnu/lib/libgcc/Makefile    (revision 245055)
>>> +++ gnu/lib/libgcc/Makefile    (working copy)
>>> _at__at_ -6,6 +6,8 _at__at_
>>>   SHLIB_NAME=    libgcc_s.so.1
>>>   SHLIBDIR?=    /lib
>>>
>>> +CC=    gcc
>>> +
>>>   .include <bsd.own.mk>
>>
>> I think this is a bit overkill approach.  We still don't know what the
>> exact cause of the problem is, and this just papers over it.
>>
>> Also, ince the bug is only reproducible by compiling the testcase with
>> g++, could you not compile your crashing programs with clang instead,
>> for now?  :-)
>>
> 
> I would very much support this patch. Whatever is going wrong is a
> critical problem -- although his testcase requires g++, I have lots of
> code that also crashes when built with clang. The fact that *any* code
> built with *any* compiler crashes when used with clang-built libgcc is
> an error. This is quite serious and breaks a *lot* of C++ code. If it
> can't be fixed now, papering it over is required.
> -Nathan

For whatever it's worth, I verified that this is the same bug I was
seeing earlier: only unwind-dw2.c is being miscompiled. The preprocessed
versions of this file are identical with both gcc and clang and the
problem occurs at all optimization levels with it is built with clang. I
tried replacing as many of the __builtin functions as a could with
thunks to the gcc versions, with no positive result. The ones I could
not replace are __builtin_return_address, __builtin_dwarf_cfa, and
__builtin_eh_return.
-Nathan
Received on Sun Jan 06 2013 - 15:39:45 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:33 UTC