Return-Path: Delivered-To: apmail-incubator-stdcxx-dev-archive@www.apache.org Received: (qmail 84527 invoked from network); 21 Aug 2007 18:26:06 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 21 Aug 2007 18:26:06 -0000 Received: (qmail 44376 invoked by uid 500); 21 Aug 2007 18:26:03 -0000 Delivered-To: apmail-incubator-stdcxx-dev-archive@incubator.apache.org Received: (qmail 44364 invoked by uid 500); 21 Aug 2007 18:26:03 -0000 Mailing-List: contact stdcxx-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: stdcxx-dev@incubator.apache.org Delivered-To: mailing list stdcxx-dev@incubator.apache.org Received: (qmail 44353 invoked by uid 99); 21 Aug 2007 18:26:03 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Aug 2007 11:26:03 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [208.30.140.160] (HELO moroha.quovadx.com) (208.30.140.160) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Aug 2007 18:26:02 +0000 Received: from qxvcexch01.ad.quovadx.com ([192.168.170.59]) by moroha.quovadx.com (8.13.6/8.13.6) with ESMTP id l7LIPfgA020326 for ; Tue, 21 Aug 2007 18:25:41 GMT Received: from [10.70.3.113] ([10.70.3.113]) by qxvcexch01.ad.quovadx.com with Microsoft SMTPSVC(6.0.3790.1830); Tue, 21 Aug 2007 12:24:51 -0600 Message-ID: <46CB2E24.50509@roguewave.com> Date: Tue, 21 Aug 2007 12:25:40 -0600 From: Martin Sebor Organization: Rogue Wave Software, Inc. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4 MIME-Version: 1.0 To: stdcxx-dev@incubator.apache.org Subject: Re: svn commit: r565959 - /incubator/stdcxx/trunk/etc/config/src/EXTERN_C_EXCEPTIONS.cpp References: <20070814224803.62DC81A981D@eris.apache.org> <46C25484.3040604@roguewave.com> <46C60C50.2080301@roguewave.com> <7BDB2168BEAEF14C98F1901FD2DE6438D3EC3A@epmsa009.minsk.epam.com> In-Reply-To: <7BDB2168BEAEF14C98F1901FD2DE6438D3EC3A@epmsa009.minsk.epam.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 21 Aug 2007 18:24:51.0376 (UTC) FILETIME=[90433B00:01C7E420] X-Virus-Checked: Checked by ClamAV on apache.org Farid Zaripov wrote: >> -----Original Message----- >> From: Martin Sebor [mailto:sebor@roguewave.com] >> Sent: Saturday, August 18, 2007 12:00 AM >> To: stdcxx-dev@incubator.apache.org >> Subject: Re: svn commit: r565959 - >> /incubator/stdcxx/trunk/etc/config/src/EXTERN_C_EXCEPTIONS.cpp >> >>> I just found out that the /Ehc flag enables the nothrow >> default for C >>> linkage functions. So changing the /EHsc flag to /EHs will fix this >>> for both VC7 and 8. >> Do you happen to know if there's a #pragma that will let us >> select the mode we need for just the one function? > > There's no #pragma for that, but we can compile all cpp files with > /Ehsc, > and some set of specified files with /EHs. Okay, that's something to consider. We'll have to see how pervasive the use of __rw_once() will be as soon as I'm done switching to it (so far I think it'll be needed in only a handful of places) and whether any of the initialization functions will potentially throw. Btw., from the MSVC Exception Handling Model: http://msdn2.microsoft.com/en-us/library/1deeycx5(VS.80).aspx it looks like by default the compiler generates code that makes catch blocks catch structured exceptions (in addition the C++ kind). That's generally considered bad practice, but it may be relied on by user code for historical reasons. We need to be careful not to impose requirements on our users that would go against this historical practice (doing so could break working code). Martin