From patchwork Fri Mar 4 11:23:19 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Stubbs X-Patchwork-Id: 319 Return-Path: Delivered-To: unknown Received: from imap.gmail.com (74.125.159.109) by localhost6.localdomain6 with IMAP4-SSL; 08 Jun 2011 14:41:41 -0000 Delivered-To: patches@linaro.org Received: by 10.224.60.68 with SMTP id o4cs11610qah; Fri, 4 Mar 2011 03:23:26 -0800 (PST) Received: by 10.142.241.13 with SMTP id o13mr417643wfh.383.1299237805661; Fri, 04 Mar 2011 03:23:25 -0800 (PST) Received: from mail.codesourcery.com (mail.codesourcery.com [38.113.113.100]) by mx.google.com with ESMTPS id d29si5458315wfj.122.2011.03.04.03.23.25 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 04 Mar 2011 03:23:25 -0800 (PST) Received-SPF: pass (google.com: domain of ams@codesourcery.com designates 38.113.113.100 as permitted sender) client-ip=38.113.113.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ams@codesourcery.com designates 38.113.113.100 as permitted sender) smtp.mail=ams@codesourcery.com Received: (qmail 9608 invoked from network); 4 Mar 2011 11:23:23 -0000 Received: from unknown (HELO ?192.168.0.104?) (ams@127.0.0.2) by mail.codesourcery.com with ESMTPA; 4 Mar 2011 11:23:23 -0000 Message-ID: <4D70CBA7.8030407@codesourcery.com> Date: Fri, 04 Mar 2011 11:23:19 +0000 From: Andrew Stubbs Organization: CodeSourcery User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.14) Gecko/20110223 Lightning/1.0b2 Thunderbird/3.1.8 MIME-Version: 1.0 To: gcc-patches@gcc.gnu.org CC: Daniel Jacobowitz , patches@linaro.org Subject: [PATCH][ARM] Fix RVCT interoperation issue The attached patch, submitted on behalf of Dan Jacobowitz, fixes an unwind bug when using RealView and libgcc. It's an old patch that has been in CodeSourcery and Linaro toolchains for sometime, but somehow escaped being posted here. OK? (For stage 1?) Andrew 2008-09-08 Daniel Jacobowitz gcc/ * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test for barrier handlers. --- a/gcc/config/arm/unwind-arm.c +++ b/gcc/config/arm/unwind-arm.c @@ -1196,8 +1196,6 @@ __gnu_unwind_pr_common (_Unwind_State state, ucbp->barrier_cache.bitpattern[4] = (_uw) &data[1]; if (data[0] & uint32_highbit) - phase2_call_unexpected_after_unwind = 1; - else { data += rtti_count + 1; /* Setup for entry to the handler. */ @@ -1207,6 +1205,8 @@ __gnu_unwind_pr_common (_Unwind_State state, _Unwind_SetGR (context, 0, (_uw) ucbp); return _URC_INSTALL_CONTEXT; } + else + phase2_call_unexpected_after_unwind = 1; } if (data[0] & uint32_highbit) data++;