X-Recipient: archive-cygwin@delorie.com
X-SWARE-Spam-Status: No, hits=-0.5 required=5.0	tests=AWL,BAYES_00,SPF_NEUTRAL
X-Spam-Check-By: sourceware.org
Message-ID: <4F29470B.7010109@cs.utoronto.ca>
Date: Wed, 01 Feb 2012 09:07:07 -0500
From: Ryan Johnson <ryan.johnson@cs.utoronto.ca>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20111222 Thunderbird/9.0.1
MIME-Version: 1.0
To: cygwin@cygwin.com
Subject: Re: llvm/clang 3.0-1 silently ignores C++ exception handling
References: <4F2835F0.5050704@t-online.de> <1328068369.5448.6.camel@YAAKOV04> <4F28D9ED.7040703@t-online.de>
In-Reply-To: <4F28D9ED.7040703@t-online.de>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-IsSubscribed: yes
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com


On 01/02/2012 1:21 AM, Christian Franke wrote:
> Yaakov (Cygwin/X) wrote:
>> On Tue, 2012-01-31 at 19:41 +0100, Christian Franke wrote:
>>> Clang++ 3.0-1 does not produce any exception handling code. Unwind
>>> tables and code within catch(.) {...} blocks are not generated. Throw
>>> always abort()s program.
>>>
>>> Is this as excepted?
>> As best as I can tell, this is an upstream limitation.  Please feel free
>> to take it upstream.
>>
>>
>
> OK, I'll do.
>
> Must be at least somewhat Cygwin specific. Clang on i686 Linux 
> generates exception handling code properly (tested with clang 2.9 on 
> Debian).
I have vague memories that Clang doesn't support SJLJ exceptions, and 
further vague memories that Cygwin favors SJLJ because dwarf exceptions 
interact badly with The Windows Way of doing things. That could be your 
problem, assuming my vague memories aren't completely out of date.

Either way, tho, it's a bit strange that the compiler doesn't squawk at 
you. Clang prides itself on having good diagnostics, and it's not 
exactly a small semantic change to silently replace throw with abort().

Ryan


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

