From patchwork Wed Jan 9 01:54:26 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Carlini X-Patchwork-Id: 210598 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 79C412C00DB for ; Wed, 9 Jan 2013 12:54:42 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1358301283; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:Received:Message-ID:Date:From:User-Agent:MIME-Version: To:CC:Subject:References:In-Reply-To:Content-Type:Mailing-List: Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:Sender:Delivered-To; bh=6Q3iwkQcjU9TYfI4XK4+KPEEm3A=; b=nw8194SItnqmnzSD/6x9ekakbAetDLPNf3/OqHBF3QEeQG18qjCMEHp/BW82Yo N8uy9qRhaTSUHuCBmyLMNUlgg7c1SW+qv/f3fkU8f6ozYq7iwYxQ78rA4SzsP916 KdmvmjxKaARiMHt19TaJi/WLM7BKmuJIXyGuoOXALyqG4= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Received:Received:Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject:References:In-Reply-To:Content-Type:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=Bcok+GjWBW3Fs0Ttikjx78Ven0Z1MFxYakdQ5nb4H3xxwXkCTmBFnOR5FCKVIl wkkcQ8FobU41yRPloeK5UzeWhyVTYNS11AJs4LtLlkdB+4bhDojQ6RM1zQDttUcD TwVzGk31gIOjTF0seWWGaUuzGNk6x8t2eN1MjlTJyCnWU=; Received: (qmail 14840 invoked by alias); 9 Jan 2013 01:54:36 -0000 Received: (qmail 14813 invoked by uid 22791); 9 Jan 2013 01:54:35 -0000 X-SWARE-Spam-Status: No, hits=-5.3 required=5.0 tests=AWL, BAYES_00, KHOP_THREADED, RCVD_IN_HOSTKARMA_NO, RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from aserp1040.oracle.com (HELO aserp1040.oracle.com) (141.146.126.69) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 09 Jan 2013 01:54:31 +0000 Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238]) by aserp1040.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP id r091sSL5000779 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 9 Jan 2013 01:54:29 GMT Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156]) by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r091sSt2003381 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 9 Jan 2013 01:54:28 GMT Received: from abhmt115.oracle.com (abhmt115.oracle.com [141.146.116.67]) by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id r091sSM6001637; Tue, 8 Jan 2013 19:54:28 -0600 Received: from [192.168.1.4] (/79.36.197.64) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 08 Jan 2013 17:54:28 -0800 Message-ID: <50ECCDD2.5000608@oracle.com> Date: Wed, 09 Jan 2013 02:54:26 +0100 From: Paolo Carlini User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: Jason Merrill CC: "gcc-patches@gcc.gnu.org" Subject: Re: [C++ Patch] PR 55801 References: <50EC0171.8080603@oracle.com> <50EC7AEF.1090905@redhat.com> In-Reply-To: <50EC7AEF.1090905@redhat.com> X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Hi, On 01/08/2013 09:00 PM, Jason Merrill wrote: > I think I'd rather handle this by returning false from > var_needs_tls_wrapper. Ah Ok. Then what about the below? Thanks, Paolo. ////////////////////// /cp 2013-01-09 Paolo Carlini PR c++/55801 * decl2.c (var_needs_tls_wrapper): Return false when error_operand_p of the argument is true. /testsuite 2013-01-09 Paolo Carlini PR c++/55801 * g++.dg/tls/thread_local-ice.C: New. Index: cp/decl2.c =================================================================== --- cp/decl2.c (revision 195043) +++ cp/decl2.c (working copy) @@ -1,7 +1,7 @@ /* Process declarations and variables for C++ compiler. Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, - 2011, 2012 Free Software Foundation, Inc. + 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007-2013 + Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -2807,7 +2807,8 @@ var_defined_without_dynamic_init (tree var) static bool var_needs_tls_wrapper (tree var) { - return (DECL_THREAD_LOCAL_P (var) + return (!error_operand_p (var) + && DECL_THREAD_LOCAL_P (var) && !DECL_GNU_TLS_P (var) && !DECL_FUNCTION_SCOPE_P (var) && !var_defined_without_dynamic_init (var)); Index: testsuite/g++.dg/tls/thread_local-ice.C =================================================================== --- testsuite/g++.dg/tls/thread_local-ice.C (revision 0) +++ testsuite/g++.dg/tls/thread_local-ice.C (working copy) @@ -0,0 +1,6 @@ +// PR c++/55801 +// { dg-options "-std=c++11" } +// { dg-require-effective-target tls } + +class C; +thread_local C O, O2 = O; // { dg-error "incomplete" }