From patchwork Mon Jan 14 15:43:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Martin_Li=C5=A1ka?= X-Patchwork-Id: 1024662 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-494015-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="ib43XBnw"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43dd6J2BS9z9sDB for ; Tue, 15 Jan 2019 02:43:19 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:from:to:cc:references:message-id:date:mime-version :in-reply-to:content-type; q=dns; s=default; b=RmahTchXrIrtx6YKP if0kvi+GKcMtnj3L67j12FCm5tXyMWhgGTuGysicAP1NkLGDSkxOr9Am878q4lBC /hY/ZuShhjb4RSGdq9Hrzqe6kD0sPqy3ewLRw6m/H2JIqFtPSk/YUnlvLhd48N2f IKIxLE7YQdI30KQi2d6ocQkTAY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:from:to:cc:references:message-id:date:mime-version :in-reply-to:content-type; s=default; bh=0HRj66WSPFz42/ye2dse8cH RIHg=; b=ib43XBnw1UWhoW3OzeUEiyJc8pHYEzPcepw0mkJnJ8IUMAKSKoEXF+I KwFSQH7eC4dLEYrTlzHswjGQaRv02K/1dwsNXCx9xfXGHviTFHUdxbkauedGfxXu pwSZMx35DeuZriAQt68gN1+eTy6UzJXCE3PLMnd9RsfrsGDbq8Ag= Received: (qmail 79455 invoked by alias); 14 Jan 2019 15:43:13 -0000 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 Received: (qmail 79426 invoked by uid 89); 14 Jan 2019 15:43:12 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy=gcov X-HELO: mx1.suse.de Received: from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 14 Jan 2019 15:43:11 +0000 Received: from relay1.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id E8B76AF1E; Mon, 14 Jan 2019 15:43:08 +0000 (UTC) Subject: [PATCH] Fix location of tls_wrapper_fn (PR gcov-profile/88263). From: =?utf-8?q?Martin_Li=C5=A1ka?= To: gcc-patches@gcc.gnu.org Cc: Jason Merrill References: Message-ID: <3a0fba60-3bc1-b220-00df-ceec0eca8a34@suse.cz> Date: Mon, 14 Jan 2019 16:43:08 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: X-IsSubscribed: yes Hi. This is another fix for the PR where I updated location of tls_wrapper. Patch can bootstrap on x86_64-linux-gnu and survives regression tests. Ready to be installed? Thanks, Martin From 07811d1057196abad898c9aeda08cd9113aedf70 Mon Sep 17 00:00:00 2001 From: marxin Date: Mon, 14 Jan 2019 14:57:01 +0100 Subject: [PATCH] Fix location of tls_wrapper_fn (PR gcov-profile/88263). gcc/cp/ChangeLog: 2019-01-14 Martin Liska PR gcov-profile/88263 * decl2.c (get_tls_wrapper_fn): Use DECL_SOURCE_LOCATION as location of the TLS wrapper. gcc/testsuite/ChangeLog: 2019-01-14 Martin Liska PR gcov-profile/88263 * g++.dg/gcov/pr88263-2.C: New test. --- gcc/cp/decl2.c | 4 +++- gcc/testsuite/g++.dg/gcov/pr88263-2.C | 25 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/gcov/pr88263-2.C diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index dbab95fbc96..9085e5cb154 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -3433,7 +3433,9 @@ get_tls_wrapper_fn (tree var) tree type = non_reference (TREE_TYPE (var)); type = build_reference_type (type); tree fntype = build_function_type (type, void_list_node); - fn = build_lang_decl (FUNCTION_DECL, sname, fntype); + + fn = build_lang_decl_loc (DECL_SOURCE_LOCATION (var), + FUNCTION_DECL, sname, fntype); SET_DECL_LANGUAGE (fn, lang_c); TREE_PUBLIC (fn) = TREE_PUBLIC (var); DECL_ARTIFICIAL (fn) = true; diff --git a/gcc/testsuite/g++.dg/gcov/pr88263-2.C b/gcc/testsuite/g++.dg/gcov/pr88263-2.C new file mode 100644 index 00000000000..f0cf15f5d0a --- /dev/null +++ b/gcc/testsuite/g++.dg/gcov/pr88263-2.C @@ -0,0 +1,25 @@ +// PR gcov-profile/88263 +// { dg-options "-fprofile-arcs -ftest-coverage -std=c++11" } +// { dg-do run { target native } } + +#include + +namespace logging { + class Logstream { + ~Logstream(); + static thread_local std::ostringstream os_; + }; +} +namespace logging { + thread_local std::ostringstream Logstream::os_; + Logstream::~Logstream() { + os_.clear(); + } +} + +int main() +{ + return 0; +} + +// { dg-final { run-gcov pr88263-2.C } } -- 2.20.1